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

时间:2013-06-19 14:13:14

标签: hibernate date datetime timestamp hql

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

我有一个视图,其中列从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等,没有任何工作......

1 个答案:

答案 0 :(得分:1)

您可以使用'DATE(sn.notif_date)'代替'CAST(sn.notif_date as DATE)'来填充视图中的Date_Only值,

OR

在选择数据时,您可以使用

  

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

仅按日期分组..