SQL リファレンス

SQL Server を中心に、SQL に関するテクニックを紹介します

SQL リファレンス

SQL Server を中心に、SQL に関するテクニックを紹介します

指定した範囲日付がテーブルの範囲日付と重複する期間があるかどうかを調べるには、以下のようにします。

画像に alt 属性が指定されていません。ファイル名: image-4.png

上のようなテーブルがあるとします。
SQL で指定した範囲日付がすでに使われているかどうかを調査します。

DECLARE @stdate DATETIME
DECLARE @eddate DATETIME

SELECT @stdate = ‘2004/04/01’ — ここで任意の開始日付を指定します
SELECT @eddate = ‘2005/03/31’ — ここで任意の終了日付を指定します

IF (EXISTS (SELECT * FROM tbl_nendo
WHERE (STDATE <= @stdate and EDDATE >= @stdate)
OR (STDATE <= @eddate and EDDATE >= @eddate)
OR (STDATE >= @stdate and EDDATE <= @eddate)))
PRINT ‘NG’
ELSE
PRINT ‘OK’

DECLAREで指定した範囲日付が年度テーブルで使用されている場合は’NG’を、使用されていない場合は’OK’を返します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です