我想在2个日期之间进行查询.我想这样做而不必担心时间.当用户输入他们想要搜索的2个日期时,没有时间选择.这意味着他们输入的日期默认为12:00 AM.
表中的日期确实有时间.我只是想忽略所有的时间,所以搜索带回所述日期范围的任何记录.
这是我的SQL:
TheDate BETWEEN @EnteredBeginDate AND @EnteredEndDate
Run Code Online (Sandbox Code Playgroud)
因此,当用户在8/6/2009和9/9/2009之间进行范围搜索时,我想返回记录:
8/6/2009 11:33:02 AM
8/6/2009 11:39:17 AM
9/9/2009 8:21:30 AM
Run Code Online (Sandbox Code Playgroud)
现在发生的事情是我才回来:
8/6/2009 11:33:02 AM
8/6/2009 11:39:17 AM
Run Code Online (Sandbox Code Playgroud)
有人可以推荐在SQL中执行此操作的最佳方法吗?我知道如何在C#中做到这一点.
JNK*_*JNK 10
只需使用DATEADD
enddate将它设置为NEXT日的午夜......
TheDate BETWEEN @EnteredBeginDate AND DATEADD(day, 1, @EnteredEndDate)
如果你想要非常精确,你可以减去一秒或毫秒,使其在你指定的日期11:59:59:
TheDate BETWEEN @EnteredBeginDate AND DATEADD(second, -1, (DATEADD(day, 1, @EnteredEndDate)))
如果您使用的是SQL Server 2008或2008 R2,则可以使用新的DATE
数据类型:
TheDate BETWEEN CAST(@EnteredBeginDate AS DATE) AND CAST(@EnteredEndDate AS DATE)
Run Code Online (Sandbox Code Playgroud)
剥离时间部分,只查看日期
归档时间: |
|
查看次数: |
11940 次 |
最近记录: |