- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:日付に関するSQL分で)
SQL分での日付に関する条件とは?
このQ&Aのポイント
- SQL分での日付に関する条件を理解するためには、DATEDIFF関数を使う必要があります。具体的な使い方は、入室日と退室日の差を計算する際に、DATEDIFF(day, 入室日, 退室日)のように指定します。
- 日付に関するSQL分での検査条件は、入室日と退室日の比較と時間帯の条件で構成されます。具体的には、入室日と退室日が同じ日で入室時間が09:00:00より後であるか、または入室日と退室日が翌日で退室時間が09:00:00より前であるかを判断する条件です。
- 部署コードが700に対応するテーブルの全データを出力する場合は、WHERE部分に「部署コード=700」という条件を追加します。それ以外の場合は、WHERE部分に何も条件を追加せずに全データを出力します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>入室日(YYYY/MM/DD)=退室日(YYYY/MM/DD) 且つ入室時間(hh:mm:ss)が09:00:00より後且つ >入室日(YYYY/MM/DD)=退室日(YYYY/MM/DD)+1 且つ退室時間(hh:mm:ss)が09:00:00 この2つは且つ(AND)じゃなくまたは(OR)でないと何もヒットしませんよ SELECT obone.* , DateDiff("d",[入室日],[退室日]) AS 式1 FROM obone WHERE (((obone.部署コード)=700) AND ((obone.入室日)=[退室日]) AND ((obone.入室時間)>=#12/30/1899 9:0:0#)) OR (((obone.部署コード)=700) AND ((obone.退室日)=[入室日]+1) AND ((obone.退室時間)<=#12/30/1899 9:0:0#)); 条件(2)のこれ以外はWhere条件にnotを付けるだけです SELECT obone.*, DateDiff("d",[入室日],[退室日]) AS 式1 FROM obone WHERE not ( (((obone.部署コード)=700) AND ((obone.入室日)=[退室日]) AND ((obone.入室時間)>=#12/30/1899 9:0:0#)) OR (((obone.部署コード)=700) AND ((obone.退室日)=[入室日]+1) AND ((obone.退室時間)<=#12/30/1899 9:0:0#)) );
お礼
ありがとうございました。 勉強不足でした。