gul*_*aek 2 sql datetime sql-server-2012
我正在尝试编写一个选择查询,其中我的 OrderDate 介于两个月之间。到目前为止,这是我的代码。
declare @FromMonth datetime
declare @ToMonth datetime
set @FromMonth = '20111201'
set @ToMonth = '20120301'
select *
from Order o
where o.OrderDate between @FromMonth and @ToMonth
Run Code Online (Sandbox Code Playgroud)
这几乎有效,除了它还会查看月份中的哪一天,这意味着在此示例中它不会选择我的 @ToMonth 中的所有天
我正在使用 Sql Server 2012
编辑
只是为了更清楚,我不想相信我的 @FromMonth 和 @ToMonth 输入知道当月的最后一天。以上只是一个示例来说明我的问题。
between 很少像您希望的那样有效,我通常发现将范围写为包含/排除对并应用适当的比较会更好:
declare @FromMonth datetime
declare @ToMonth datetime
set @FromMonth = '20111201'
set @ToMonth = '20120401'
select *
from Order o
where o.OrderDate >= @FromMonth and o.OrderDate < @ToMonth
Run Code Online (Sandbox Code Playgroud)
如果OrderDate包含时间组件,这也将避免令人讨厌。
| 归档时间: |
|
| 查看次数: |
19929 次 |
| 最近记录: |