Sql-Server-2012

獲取開始和結束日期時間之間的日期時間

  • September 11, 2019
Start_Date                           End_Date
2019-09-10 17:48:00.000        2019-09-10 18:00:00.000
2019-09-10 17:00:00.000        2019-09-10 17:45:00.000
2019-09-10 17:30:00.000        2019-09-10 18:00:00.000
2019-09-11 08:00:00.000        2019-09-11 09:30:00.000
2019-09-11 08:30:00.000        2019-09-11 09:30:00.000
2019-09-11 12:00:00.000        2019-09-11 13:00:00.000
2019-09-11 12:30:00.000        2019-09-11 13:15:00.000
2019-09-11 12:15:00.000        2019-09-11 13:15:00.000

如果我在查詢中通過 Start_Date 和 End_Date 例如 Start_Date = ‘2019-09-11 12:00.000’ 和 End_Date=‘2019-09-11 13:15.000’

預期結果:

Start_Date                        End_date
2019-09-11 12:00:00.000    2019-09-11 13:00:00.000
2019-09-11 12:30:00.000    2019-09-11 13:15:00.000
2019-09-11 12:15:00.000    2019-09-11 13:15:00.000

完全重疊:

SELECT * 
FROM source
WHERE Start_Date >= '2019-09-11 12:00.000' 
 AND End_Date <= '2019-09-11 13:15.000'

部分重疊(不只是相鄰,對於相鄰替換強不等式>>用安全的>=<=):

SELECT * 
FROM source
WHERE End_Date > '2019-09-11 12:00.000' 
 AND Start_Date < '2019-09-11 13:15.000'

小提琴

請檢查此解決方案:

SELECT * FROM TABLE WHERE Start_Date BETWEEN '2019-09-11 12:00.000' and '2019-09-11 13:15.000' AND End_Date BETWEEN '2019-09-11 12:00.000' and '2019-09-11 13:15.000'

引用自:https://dba.stackexchange.com/questions/248485