gra*_*ady 78 t-sql sql-server date sql-server-2008
我有2个日期(日期时间):
date1 = 2010-12-31 15:13:48.593
date2 = 2010-12-31 00:00:00.000
它在同一天,只是不同的时间.比较date1和date2使用<=因为date1时间而无效.所以date1 <= date2是错误的,但应该是真的.我可以通过查看年,月和日来比较它们,以便它们是相同的吗?它的SQL Server 2008.
谢谢 :)
Mar*_*ith 80
SELECT CASE WHEN CAST(date1 AS DATE) <= CAST(date2 AS DATE) ...
Run Code Online (Sandbox Code Playgroud)
应该做你需要的.
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
Run Code Online (Sandbox Code Playgroud)
返回
COMPARISON_WITH_CAST | COMPARISON_WITHOUT_CAST
Y N
Run Code Online (Sandbox Code Playgroud)
Luk*_*keH 62
使用DATEDIFFdatepart为的函数day.
SELECT ...
FROM ...
WHERE DATEDIFF(day, date1, date2) >= 0
Run Code Online (Sandbox Code Playgroud)
请注意,如果您想测试date1<= date2那么您需要测试它DATEDIFF(day, date1, date2) >= 0,或者您可以测试DATEDIFF(day, date2, date1) <= 0.
| 归档时间: |
|
| 查看次数: |
188383 次 |
| 最近记录: |