我正在使用以下邏輯進行時間查詢。但我不熟悉時間查詢。誰能幫忙?SQL - 時間範圍(CASE WHEN)
CASE WHEN (07:00:00) TO (07:10:00) is between [STARTTIME] AND [STOPTIME] THEN 'YES'
開始時間和結束時間都是時間字段
我正在使用以下邏輯進行時間查詢。但我不熟悉時間查詢。誰能幫忙?SQL - 時間範圍(CASE WHEN)
CASE WHEN (07:00:00) TO (07:10:00) is between [STARTTIME] AND [STOPTIME] THEN 'YES'
開始時間和結束時間都是時間字段
爲什麼不
CASE WHEN '07:00:00' >= [STARTTIME] AND '07:10:00' <= [STOPTIME] THEN 'YES'
,如果我瞭解清楚你想要做什麼。
這不起作用的原因有兩個:1)您不能將此條件用作比起始時間更長的07:00:00,並且應該小於停止時間。 2)時間不能與'> =' –
比較是的,這是真的。您必須將其轉換爲當前日期的日期時間或將其轉換爲時間戳。 也許你可以使用maketime()來比較它們。 – Kirjava
您無法轉換爲當天 - 這會影響您與開始時間和停止時間的比較。 –
這是查詢: - 我用@start_Time(用於STARTIME)和@end_Time(用於STOPTIME)作爲局部變量,您可以替換它們。 (正如你所說我介入這些值之間,如果你需要包括那些時間,那麼而不是>你需要把> =和<相同替換爲< =)。
select CASE WHEN ((time_to_sec(timediff('07:00:00', time(@Start_Time))))>0
AND (time_to_sec(timediff('07:00:00', time(@end_Time))))<0)
AND
((time_to_sec(timediff('07:10:00', time(@Start_Time))))>0
AND (time_to_sec(timediff('07:10:00', time(@end_Time))))<0) =1
THEN 'YES' else 'NO' END
希望它可以幫助你!
@a_horse_with_no_name MySQL – Angel
開始時間,停止時間是Varchar還是datetime? –
@RohitPadma對不起! StartTime&StopTime是DATETIME字段。 – Angel