SQL SERVER 2005中的SQL查询 - 比较日期

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.

ani*_*key 5

宣布明天的日期: 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)


gbn*_*gbn 5

假设列的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月底失败......