【问题标题】:java.lang.IllegalArgumentException: Timestamp format must be yyyy-mm-dd hh:mm:ss[.fffffffff]java.lang.IllegalArgumentException:时间戳格式必须是 yyyy-mm-dd hh:mm:ss[.fffffffff]
【发布时间】:2013-06-16 02:59:49
【问题描述】:

我在将一些格式正确的日期传递给查询时遇到问题。

我有一个视图,其中一列从 DATETIME 转换为 DATE,因此我可以忽略时间部分并仅按日期对它们进行分组。

CREATE VIEW test_view (date, code_id, dist_id, type, reg, a_code, a_stats, rec_stats) AS
SELECT CAST(sn.notif_date as DATE), code_id, di.codigo, di.type, ac.reg, ac.a_code, cd.check, 
CASE WHEN cd.rec_val = 0 THEN 0 ELSE 1 END
FROM card AS cd, sel_notif AS sn, code_id AS ci, dist_id AS di, ar_code AS ac
WHERE ci.id = sn.id_code 
AND cd.id_sel = sn.id
AND di.id = ci.id_dist
AND sn.sel_date >= DATEADD(DD, -90, GETDATE())
AND di.id = ac.id_dist
AND sn.orig = 'VDO'

我尝试使用以下代码创建的 2 个日期来查询此视图:

Date startDate = new DateTime(start).toDate();
Date endDate = new DateTime(end).toDate();

开始和结束变量作为“2013-01-22”接收。当我尝试查询时,我收到此错误:

java.lang.IllegalArgumentException: 时间戳格式必须是 yyyy-mm-dd hh:mm:ss[.fffffffff]

如果我将视图更改为不转换为 DATE,我不会收到错误,但结果会出错。

任何人都知道如何将此日期格式化为这种特定模式? 我尝试使用 TimeStamp、java.sql.Date 等,但没有任何效果...

【问题讨论】:

    标签: hibernate date datetime timestamp hql


    【解决方案1】:

    您可以使用“DATE(sn.notif_date)”而不是“CAST(sn.notif_date as DATE)”来填充视图中的 Date_Only 值,

    在数据选择时可以使用

    'SELECT * FROM yourView GROUP BY DATE(sn.notif_date)'

    仅用于按日期分组..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-04
      • 2021-05-04
      • 1970-01-01
      • 2017-07-09
      • 1970-01-01
      • 2014-10-25
      • 2019-09-24
      • 2018-10-05
      相关资源
      最近更新 更多