私は、次のロジックで時間クエリに取り組んでいます。しかし、私は時間のクエリに精通していない。誰も助けることができますか?私はあなたが何をしたいのか明確に理解していればSQL - 時間範囲(ケース時)
CASE WHEN (07:00:00) TO (07:10:00) is between [STARTTIME] AND [STOPTIME] THEN 'YES'
開始時間と終了時間は
私は、次のロジックで時間クエリに取り組んでいます。しかし、私は時間のクエリに精通していない。誰も助けることができますか?私はあなたが何をしたいのか明確に理解していればSQL - 時間範囲(ケース時)
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'
両方のDateTimeフィールドです。
これは2つの理由で機能しません:1)starttimeよりも大きい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