首页 > 解决方案 > 具有特定工作日的 SQL 查询

问题描述

2021年5月至2021年8月间,周日晚上7点到周五早上5点需要查记录,where条件下怎么写?

下面的查询是 3 个月的,但我想要从周日晚上 7 点到周五早上 5 点

l1.[PickupTime] between '2021/05/01 19:00:00' and '2021/09/01 05:00:00'

你能帮我解决这个问题吗?

标签: sqlsql-servertsqlwhere-clause

解决方案


嗯。. . 我想你想要:

where l1.[PickupTime] between '2021-05-01' and '2021-09-02' and
      ((datename(weekday, l1.[PickupTime]) = 'Sunday' and 
        time(l1.[PickupTime]) >= '19:00:00'
       ) or
       (datename(weekday, l1.[PickupTime]) in ('Monday', 'Tuesday', 'Wednesday', 'Thursday') or
       (datename(weekday, l1.[PickupTime]) = 'Friday' and
        time(l1.[PickupTime]) < '05:00:00'
       )
      )

推荐阅读