2017-09-19 17 views
0

現在の時刻と比較するのは難しいですが、DBにはコードが存在します。SQLクエリで時間条件が機能していない

私の状態は、現在の時間よりも小さくなければならないというデータベース時間のレコードと同じですが、動作しません。

以下はコードとスナップです。

sch_timeフィールド名です

SELECT 
    rs.week_day, 
    rs.reportsch_tid, 
    rs.sch_time, 
    rs.reportsch_id, 
    rl.report_lid 
FROM 
    report_schedule rs 
    LEFT JOIN report_log rl ON(
     rs.reportsch_id = rl.reportsch_id 
    ) 
WHERE 
    sch_time < '11:39:46' 
    AND (
     case WHEN(
      (rs.reportsch_tid = 2) 
      OR (
       rs.reportsch_tid = 3 
       AND rs.week_day = 2 
      ) 
     ) then DATE(schedule_time)= '0000-00-00 00:00:00' else DATE(schedule_time)= '2017-09-19' END 
    ) 

enter image description here

+0

タイムスタンプ()または日付()を使用する必要があります。 –

+0

タイムスタンプ(sch_time)ですか? – sradha

+0

タイムスタンプにも機能しないので、 – sradha

答えて

0

sch_timeと'11:39:46' の文字列と可能性の高い問題の原因として比較されています。テーブル定義なしで伝えるのは難しいです。フィールド定義にタイムスタンプまたは時刻フィールドを使用する必要があります。適切な変換/評価を行うために整数に変換する必要があります。

+0

sch_timeは時刻タイプです – sradha

関連する問題