7

データベースに日時列のあるテーブルがあります。レコードが週末の期間内であるかどうかを判断するためのクエリを作成する方法はありますか?

すべてのレコードを表示し、各結果行に追加の列を追加して、週末が(金曜日の1730時間後)または(日曜日の2359時間前)の基準を満たしている場合に表示したいと思います。

以下は私が現在持っているものですが、何かが間違っているようです。:(どんな助けでも大歓迎です。:)

SELECT recordTime, DATE_FORMAT(recordTime, "%W %w %T"), (( (DATE_FORMAT(recordTime, "%T") > '17:30:00' AND DAYOFWEEK(recordTime)=6)
    AND (DATE_FORMAT(recordTime, "%T") < '23:59:59' AND DAYOFWEEK(recordTime)=7) )
    OR (DATE_FORMAT(recordTime, "%T") < '23:59:59' AND DAYOFWEEK(recordTime)=0)) AS Weekend
FROM `waitrecord`
4

1 に答える 1

20

あなたの論理は間違っています。1日を平日6と平日7に同時にすることはできません。

条件は

DAYOFWEEK(recordTime) = 7
or DAYOFWEEK(recordTime) = 1
or (DATE_FORMAT(recordTime, "%T") > '17:30:00' AND DAYOFWEEK(recordTime) = 6)

編集: DAYOFWEEK1は実際には日曜日と土曜日に戻ります(ゼロベースのDATE_FORMAT7とは対照的です)

于 2012-08-27T13:20:41.020 に答える