【问题标题】:Is there a way to exclude some hours on where clause SQL Server 2016?有没有办法在 where 子句 SQL Server 2016 上排除几个小时?
【发布时间】:2021-06-15 13:10:35
【问题描述】:

我正在尝试获取 16:30 到 06:00 之后发布的订单。我收到了这个问题

Select OrderID, OrderDateTime, OrderNumber from Orders where OrderDateTime between '2020-07-01 16:30:000' and '2021-05-31 06:00'

我试图排除所有天从 06:01 到 16:29 的时间。可以直接从 SQL 查询中做到这一点吗?

【问题讨论】:

    标签: sql sql-server sql-server-2016


    【解决方案1】:

    我试图排除所有天从 06:01 到 16:29 的时间。可以直接从 SQL 查询中做到这一点吗?

    只需转换为time 并过滤:

    Select OrderID, OrderDateTime, OrderNumber
    from Orders 
    where convert(time, OrderDateTime) < '06:01:00' or
          convert(time, OrderDateTime) > '16:29:00' ;
    

    也就是说,我怀疑你真的想要:

    Select OrderID, OrderDateTime, OrderNumber
    from Orders 
    where convert(time, OrderDateTime) <= '06:00:00' or
          convert(time, OrderDateTime) >= '16:30:00' 
    

    这取决于你如何对待秒。

    【讨论】:

    • 感谢您的帮助。今天我学到了一些新东西。
    猜你喜欢
    • 1970-01-01
    • 2012-03-04
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2020-07-05
    • 2019-10-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多