我在将一些格式正确的日期传递给查询时遇到问题。
我有一个视图,其中列从 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 等,但没有任何效果......