SELECT [NEXT_UPDATE_TIME]
FROM [BGREX_UpdateQueue]
WHERE [NEXT_UPDATE_TIME] < 18/12/2009
我想从列中的datetime值小于某个日期时间的记录中选择那些日期,我们需要进行比较。我有几个价值小于“18/12/2009”,但没有返回任何行。
以下语法不起作用
SELECT 18/12/2009 // returns 0
WHERE [NEXT_UPDATE_TIME] < '18/12/2009'; // The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
通过'18 / 12/2009'或其他日期的正确语法是什么?感谢
答案 0 :(得分:3)
尝试:
select next_update_time from bgrex_updatequeue
where next_update_time < '2009-12-18';
答案 1 :(得分:2)
答案 2 :(得分:0)
这应该有效:
SELECT [NEXT_UPDATE_TIME]
FROM [BGREX_UpdateQueue]
WHERE [NEXT_UPDATE_TIME] < '2009-12-18'
顺便说一下,由于日期的格式,您收到The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
错误,如果您尝试12/18/2009
,它也应该有效,但上面的查询是我认为最好的。
答案 3 :(得分:0)
如果您使用的是DataView,可以轻松完成此操作(例如在日期之间):
myDataView = new DataView(myDataSet.Tables["TABLE"], "TIMESTAMP >= '" + Convert.ToDateTime(fromDate) + "' AND TIMESTAMP <= '" + Convert.ToDateTime(toDate) + "'", "TIMESTAMP", DataViewRowState.CurrentRows);
toDate和fromDate的类型为string
答案 4 :(得分:-1)
DATEDIFF是你的朋友。
答案 5 :(得分:-2)
您的示例中的查询缺少日期周围的引号,它应该是:
SELECT [NEXT_UPDATE_TIME]
FROM [BGREX_UpdateQueue]
WHERE [NEXT_UPDATE_TIME] < '18/12/2009'