hye*_*ans 2 sql t-sql sql-server sql-server-2005 date
我很难做这个查询.我想比较查询中的日期,我的数据库中的日期是这样的格式:
(MM/DD/YYYY HH:MM:SS AM)
我想比较这个日期和今天的明天,加上一个.
我的问题是:
如何在sql server中声明明天的日期?
你会如何比较这两个日期?
谢谢!!= d
编辑:DB中的日期是VarChar = S.
宣布明天的日期: DATEADD(dd,1,getdate())
比较日期:
WHERE column >= CONVERT(datetime, CONVERT(varchar, DATEADD(day, 1, GETDATE()), 102))
AND column < CONVERT(datetime, CONVERT(varchar, DATEADD(day, 2, GETDATE()), 102))
Run Code Online (Sandbox Code Playgroud)
假设列的datetime数据类型
WHERE
MyCol >= DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1)
AND
MyCol < DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 2)
Run Code Online (Sandbox Code Playgroud)
这个(yyyy-mm-dd)删除了明天测试MyCol的时间成分
2009-10-06 00:00:00 <= MyCol <2009-10-07 00:00:00
你不会从MyCol中剥离时间:这会影响性能并禁止索引使用等
从datetime问题中删除时间的效率,这就是我使用这种格式并避免varchar转换的原因...
编辑:
避免隐式转换和字符串匹配
10/06/2009 <= MyCol <10/07/2009
WHERE
MyCol >= CONVERT(char(10), DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 1), 101)
AND
MyCol < CONVERT(char(10), DATEADD(DAY, DATEDIFF(DAY, 0, GETDATE()), 2), 101)
Run Code Online (Sandbox Code Playgroud)
当然,它将在12月底失败......
| 归档时间: |
|
| 查看次数: |
11595 次 |
| 最近记录: |