后继版本:10.4
表列名/类型:带时区的updated_at timestamp(6)
final String SELECT_PAYMENT_INFO_QUERY =
"SELECT i.code, p.*
FROM information i
INNER JOIN product p ON i.ref = p.information_ref
WHERE p.reference = :reference AND p.type = :paymentMethodType AND p.error_state = :errorState
AND p.updated_at IS NOT NULL AND p.updated_at >= :queryFromTime
ORDER BY p.updated_at ASC
FETCH FIRST :numberOfRows ROWS ONLY"
Java方法:
public List<ProductInformationDTO> retrieveProductInformations(
ZonedDateTime fetchFromTime, int noOfRecords)
{
try
{
return dbi.inTransaction((HandleCallback<List<ProductInformationDTO>, Exception>) handle ->
{
final List<ProductInformationDTO> productInfos = handle.createQuery(SELECT_PAYMENT_INFO_QUERY)
.bind("reference", "ABCD")
.bind("paymentMethodType", "CREDIT_CARD")
.bind("errorState", "COMPLETED_WITH_ERRORS")
.bind("queryFromTime", fetchFromTime.toOffsetDateTime())
.bind("numberOfRows", noOfRecords)
.map(productInfoMapper)
.list();
return productInfos;
});
}
catch (Exception e)
{
LOG.error("Failed to complete the retrieve operation.", e);
throw new TransactionException(e);
}
}
这个查询和方法在H2数据库中很好地工作。然而,当使用Postgress数据库对其进行测试时,我得到以下异常
我也尝试了FetchFromTime.ToLocalDateTime(),但得到了相同的异常。
不能在fetch first
(或limit
)子句中使用位置参数。假设您能够容忍运行本机查询,一种解决方法是使用row_number
:
SELECT *
FROM
(
SELECT i.code, p.*, ROW_NUMBER() OVER (ORDER BY p.updated_at) rn
FROM information i
INNER JOIN product p ON i.ref = p.information_ref
WHERE p.reference = :reference AND p.type = :paymentMethodType AND
p.error_state = :errorState AND p.updated_at IS NOT NULL AND
p.updated_at >= :queryFromTime
) t
WHERE rn <= :numberOfRows
用于排序的日期比较不起作用。请指教。 我的代码: 错误: 错误:找不到返回d1的符号。与(d2)比较 符号:方法比较到(日期) 位置:日期类型的变量d1 注意:某些输入文件使用或重写了不推荐的API 注意:使用-Xlint:deprecation重新编译以获取详细信息 注意:某些输入文件使用未检查或不安全的操作 注意:使用-Xlint重新编译:未选中以获取详细信息。
我的数据库有一列是 当生成实体时,它在实体类中创建了一个< code>Timestamp字段。 我的传入对象是一个< code>java.util.Date对象。< code >开始日期和< code >结束日期。 我需要编写一个 JPA 查询,该查询将获取在日期和之间的记录。它正在考虑时间。 查询条件
我有这样的疑问: 请注意,但不知为什么结果是... 我错过了什么?
我有一个类似于。 我有一个数字,12作为参数值。我想做的是,我想将数字12与上述创建的时间和目标进行比较。我该怎么做呢。 我发现,在检索数据的过程中,Laravel会自动将这些创建的对象转换为碳对象。是否有一种方法可以在检索期间提取创建的_的月份部分? 显然,上面的代码不起作用。我发现正在做
Created_date类型为date 日期格式默认为yyyy-dd-MM
问题内容: 我正在管理事件数据库。每个事件都有开始和结束时间戳记()。 目前,我可以通过一个SQL查询执行以下操作: 建立日历,并记下发生事件的日期 列出给定日期(YYYY / MM / DD,YYYY / MM)中发生的事件 问题是当一个事件跨越几天时,我无法在它的开始和结束时间戳之间的日期列出它。 例如: 活动开始于2011/05/25和结束于2011/05/27,但我无法在页面2011/05