前回の続き
今回は、前回お伝え出来なかった日付型の内容の続きを紹介します。
DATEDIFF
2つの日付間の間隔をとることができます。
以外に結構使うんですよね。
年、月、日、時、分、秒ごとに計測してみます。
DECLARE @DATE01 DATETIME = '2021-01-13 10:10:10.010', @DATE02 DATETIME = '2023-04-01 00:00:00.000'; SELECT DATEDIFF(yy, @DATE01, @DATE02) AS yy, DATEDIFF(mm, @DATE01, @DATE02) AS mm, DATEDIFF(dd, @DATE01, @DATE02) AS dd, DATEDIFF(hh, @DATE01, @DATE02) AS hh, DATEDIFF(mi, @DATE01, @DATE02) AS mi, DATEDIFF(ss, @DATE01, @DATE02) AS ss
こんなかんじです。
ISDATE
データが、DATE型なのかを確認します。
さまざまな形式を確かめてみましょう。
DECLARE @DATE01 VARCHAR(30) = '2021-01-13', @DATE02 VARCHAR(30) = '01-13-2021', @DATE03 VARCHAR(30) = '2021-01-13 00:00:00:000', @DATE04 VARCHAR(30) = 123456, @DATE05 VARCHAR(30) = '123456'; SELECT ISDATE(@DATE01) AS '2021-01-13', ISDATE(@DATE02) AS '01-13-2021', ISDATE(@DATE03) AS '2021-01-13 00:00:00:000', ISDATE(@DATE04) AS _INT, ISDATE(@DATE05) AS _CHR
こんなかんじです。
文字型を日付型として扱うときにはISDATEで確認してから、DATEADDとかDATEDIFFとかやればエラーなく行けそうですね。