我有一个简单的查询
SELECT *
FROM SlabRateDetail
WHERE Fromdate <> '01/04/2010 12:00:00 AM'
但是当我运行此查询时,我会在结果中看到01/04/2010 12:00:00 AM
。
任何想法为什么?我甚至尝试过使用!=
答案 0 :(得分:5)
在指定日期文字时使用明确的ISO8601类似日期(YYYY/MM/DD
)
e.g。
SELECT * FROM SlabRateDetail
WHERE Fromdate <> '2010-04-01 12:00:00 AM'
我相信您看到的日期为2010/01/04
默认情况下,SQL Server对文字使用美国日期约定MM/DD/YYYY
(取决于您的服务器设置)
答案 1 :(得分:0)
试试这个
SELECT * FROM SlabRateDetail WHERE CONVERT(VARCHAR(10), Fromdate, 106) <> CONVERT(VARCHAR(10), '01/04/2010 12:00:00 AM', 106)