簡體   English   中英

SQL語句//與日期時間之間

[英]SQL Statement // between with datetime

我有以下查詢:

select s.ScreenID, s.ScreenName, ps.ScheduleDate
from Screens s
left join PerformanceSchedules ps on ps.ScreenID = s.ScreenID
where s.TheatreID = 2 and ((ps.ScheduleDate not between convert(datetime, '2019-08-02 14:00:00.000') and convert(datetime, '2019-08-02 20:00:00.000')) or (ps.ScheduleDate is null))

查詢的結果是:

ScreenID    ScreenName  ScheduleDate
4           Screen 1    2019-08-02 15:00:00.000
5           Screen 2    2019-08-02 15:00:00.000
6           Screen 3    NULL

通常,它應該只返回屏幕3,而不返回其他兩個,因為兩者的ScheduleDate在時間范圍內。

結果應為:

6   Screen 3    NULL

我懷疑你真的想要:

select s.ScreenID, s.ScreenName, ps.ScheduleDate
from Screens s left join
     PerformanceSchedules ps
     on ps.ScreenID = s.ScreenID and
        ps.ScheduleDate between convert(datetime, '2019-08-02 14:00:00.000', 121) and convert(datetime, '2019-08-02 20:00:00.000', 121)
where s.TheatreID = 2 and
      ps.ScreenID is null;

這將返回在這些時間之間沒有計划日期的屏幕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM