您好我正在尝试根据日期和时间列查询SQL数据库中的记录。我想选择超过特定日期的所有记录。这是我试过的。
SELECT * FROM `table` WHERE status = 1 AND odate >= ? AND otime > ?;
这不起作用,因为即使日期值更大,时间也必须更大。我不确定如何做到这一点?我正在使用MS SQL。
以下是测试用例......
DB记录|| odate:12/20/2013 otime:下午4:55:00
通过Params || 日期:2013年12月15日 时间:下午6:13:00
尽管odate>日期不是时间>比时间。
所以我的查询,
AND odate >= ? AND otime > ?;
失败。
答案 0 :(得分:1)
如果odate
和otime
都是数据类型的日期时间,只需将日期和时间加在一起。
Where odate + otime > ?;
如果它们不是数据类型datetime,那么只需将它们首先转换为datetime。
答案 1 :(得分:0)
以下是今天的日期:
SELECT CONVERT(VARCHAR(10), GETDATE(), 101) AS [MM/DD/YYYY]
以下是您获取当前时间的方式:
SELECT CONVERT(VARCHAR(8), GETDATE(), 108)
将这些应用到表格中的字段。另外,我不能说,但看起来你的DateTime字段被称为“日期”?这是一个保留字,当你使用它时会引起你的问题。如果这是真的,你无法改变它,你需要用括号括起来(比如:[date]),否则它会尝试解决日期而不是拿起你的字段值。