我有两个日期(日期时间):
日期1 = 2010-12-31 15:13:48.593
日期2 = 2010-12-31 00:00:00.000
这是同一天,只是时间不同。由于 date1 时间,使用 <= 比较 date1 和 date2 不起作用。所以 date1 <= date2 是错误的,但应该是正确的。我可以只看年、月、日来比较它们吗?这是 SQL Server 2008。
最佳答案
SELECT CASE WHEN CAST(date1 AS DATE) <= CAST(date2 AS DATE) ...
应该做你需要的事情。
测试用例
WITH dates(date1, date2, date3, date4)
AS (SELECT CAST('20101231 15:13:48.593' AS DATETIME),
CAST('20101231 00:00:00.000' AS DATETIME),
CAST('20101231 15:13:48.593' AS DATETIME),
CAST('20101231 00:00:00.000' AS DATETIME))
SELECT CASE
WHEN CAST(date1 AS DATE) <= CAST(date2 AS DATE) THEN 'Y'
ELSE 'N'
END AS COMPARISON_WITH_CAST,
CASE
WHEN date3 <= date4 THEN 'Y'
ELSE 'N'
END AS COMPARISON_WITHOUT_CAST
FROM dates
返回
COMPARISON_WITH_CAST | COMPARISON_WITHOUT_CAST
Y N
关于sql-server - 使用 SQL Server 比较日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4794028/