Jos*_*son 2 sql t-sql sql-server
这两个查询返回不同的订单数量,并不清楚为什么.第一个where
条款是可接受的correct
版本:
where
year(OrderDate) = 2011
and MONTH(OrderDate) = 8
and DAY(OrderDate) = 3
Run Code Online (Sandbox Code Playgroud)
但如果我说一些非常相似的话:
WHERE
io.OrderDate >= '2011-08-03 00:00:00'
and io.OrderDate <= '2011-08-03 11:59:59'
Run Code Online (Sandbox Code Playgroud)
我得到了完全不同的记录数.在日期格式化中我有什么问题吗?或者我在逻辑中缺少什么?我更愿意说后者,因为它更容易使用恕我直言.
编辑:
我推荐的新答案将我原来的(如下所示)与Mikael和Alex的评论结合起来.
WHERE
io.OrderDate >= '2011-08-03 00:00:00'
and io.OrderDate < '2011-08-04 00:00:00'
Run Code Online (Sandbox Code Playgroud)
应该提供所需的结果.
第二个查询仅从午夜到中午.(00:00:00 - 11:59:59是12小时)
WHERE
io.OrderDate >= '2011-08-03 00:00:00'
and io.OrderDate <= '2011-08-03 23:59:59'
Run Code Online (Sandbox Code Playgroud)
应该解决它.
@Alex答案也有一点意义.毫秒计数(取决于您的特定表是否包含它们).
WHERE
io.OrderDate >= '2011-08-03 00:00:00.000'
and io.OrderDate <= '2011-08-03 23:59:59.999'
Run Code Online (Sandbox Code Playgroud)
将包括错过的任何其他记录
归档时间: |
|
查看次数: |
87 次 |
最近记录: |