2017-04-08 147 views
1

嗨,大家好,我必須在數據庫中查詢一些start_datetime和end_datetime,假設將有名稱爲test的表和列是className,startDateTime和endDateTime如何在開始日期時間和結束日期時間之間查詢查詢數據

示例數據類名= 「I」 的startDateTime = '2017年4月18日八點00分00秒' 和endDateTime = '2017年4月18日9點零零分00秒'

我的查詢是一樣,如果我的價值就像下面它不應該獲取示例數據

startDateTime = 2017-04-18 07:00:00「」並結束日期時間= 「2017年4月18日七點55分00秒」

的startDateTime = 2017年4月18日10:00:00 「」 和endDateTime = 「2017年4月18日11:00:00」

的startDateTime = 2017年4月19日8點○○分00秒 「」 和endDateTime = 「2017年4月19日9點00分零零秒」

應該獲取數據。例如

的startDateTime = 2017- 04-18 08:00:00「」and endDateTime =「2017-04-18 09:00:00」

startDateTime = 2017-04-18 08:10:00「」and endD ateTime = 「2017年4月18日8點55分00秒」

的startDateTime = 2017年4月18日8時30分○○秒 「」 和endDateTime = 「2017年4月18日9點30分○○秒」

SELECT * FROM timetable_tbl WHERE className='I' and 
    ((StartDate>='startDateTimeValue' and StartDate<'startDateTimeValue') or 
    (StartDate<='startDateTimeValue' and StartDate<'startDateTimeValue') or 
    (StartDate>='startDateTimeValue' and EndDate<='endDateTimeValue')); 
+0

在表格中,開始和結束日期,均爲12:00:00。那麼爲什麼要在12:10到12:30之間查詢記錄? –

+0

對不起,我現在改變了 –

+1

所以事情是......你用'AND'查詢2個字段。所以它意味着它會顯示那些開始日期大於或等於12:10且結束日期小於或等於12:30的記錄。所以兩個條件應該匹配以獲得結果。但現有記錄與第一個條件I.e不匹配。 start_date不大於或等於12:10 –

回答

1

以下邏輯滿足我所有上述標準

((startDate>? And endDate<?) or (startDate>=? And endDate<=?) or (startDate<? And endDate>?) or (startDate<? And endDate>?)) 
相關問題