SQL Serverの日時の計算と年月日のみ表示のサンプルです。
目次
サンプル | 日時の計算 |
現在日時のGETDATE()を使用する | |
書式を設定する(年月日のみ表示) |
日時の計算
DateAdd(キーワード,数値,日付) |
- DateAdd関数で年月日から時分秒まで計算できます。
- 1つめの引数は、年の計算ではYEAR,月の計算ではMONTHを指定します。
- 2つめの引数をマイナスにすると引き算ができます。
- 以下は、MicrosoftのDATEADD (Transact-SQL)のリンクです。
https://docs.microsoft.com/ja-jp/sql/t-sql/functions/dateadd-transact-sql?view=sql-server-ver15
select DATEADD(YEAR,3,'2021-06-01')--2024-06-01 00:00:00.000
select DATEADD(MONTH,3,'2021-06-01')--2021-09-01 00:00:00.000
select DATEADD(DAY,3,'2021-06-01')--2021-06-04 00:00:00.000
select DATEADD(HOUR,3,'2021-06-01 13:00:00')--2021-06-01 16:00:00.000
select DATEADD(MINUTE,3,'2021-06-01 13:00:00')--2021-06-01 13:03:00.000
select DATEADD(SECOND,3,'2021-06-01 13:00:00')--2021-06-01 13:00:03.000
1~3行目は、3つめの引数の2021年6月1日に対してそれぞれ3年、3月、3日を加算しています。
2つめの引数がマイナスであれば引き算になります。
4~6行目は、時分秒の計算をしています。それぞれ3時間、3分、3秒を加算しています。
現在日時のGETDATE()を使用する
GETDATE()は、現在日時を返します。上記の日付の計算にも使用できます。
select GETDATE()--2021-06-09 01:21:40.900
select DATEADD(DAY,3,GETDATE())--2021-06-12 01:21:19.377
2行目は、現在日時から3日後を返します。
書式を設定する(年月日のみ表示)
Format(日付,フォーマット) |
- Format関数で書式を設定できます。
- フォーマットは、年月日などの日本語も可能です。
- 以下は、MicrosoftのFORMAT (Transact-SQL)のリンクです。
https://docs.microsoft.com/ja-jp/sql/t-sql/functions/format-transact-sql?view=sql-server-ver15
select FORMAT(GETDATE(),'yyyy-MM-dd')--2021-06-09
select FORMAT(DATEADD(DAY,3,GETDATE()),'yyyy/MM/dd')--2021/06/12
select FORMAT(GETDATE(),'yyyyMMdd')--20210609
select FORMAT(GETDATE(),'yyyy年MM月dd日')--2021年06月09日
フォーマットの月の指定のMMは大文字です。年と日のyyyyとddは小文字です。
関連の記事