SQL道場 日付時刻関数 DATEDIFF関数
SQLで日付の差を求めるDATEDIFF関数について記載しています。
対応データベース:MySQL SQL Server Access
DATEDIFF関数の文法
SELECT DATEDIFF(日付要素,日付1,日付2) FROM テーブル (SQL Server)
SELECT DATEDIFF(日付1,日付2) FROM テーブル (MySQL)
その他
引数 Arguments | 日付要素 Date element | 日付型 Date Type |
日付1 Date1 | 文字列型 String type | |
日付2 Date2 | 文字列型 String type | |
返値 return value | 文字型 日付の差が戻ります。 Returns the date difference. |
SQLServer
引数 | 日付要素 | SQL Server、Accessの日付の要素 |
開始日付 | 以下のいずれかの値で解決できる式 date datetime datetimeoffset datetime2 smalldatetime time | |
終了日付 | 開始日付と同様 | |
返値 | int | 開始日付と終了日付の差 |
DATEDIFF関数は指定された日付1,2の日付の差を日付要素の単位の数値で戻します。
MySQL
DATEDIFF() は、ある日付から別の日付までの日数の値として表現された expr1 − expr2 を返します。expr1 および expr2 は、日付または日付時間式です。 値の日付部分のみが計算に使用されます。
https://dev.mysql.com/doc/refman/8.0/ja/date-and-time-functions.html#function_datediff
SQL Server、Accessの日付の要素
SQL Server, Access Date Element
SQL Server | 省略形 abbreviation | Access | |
---|---|---|---|
年 | year | yy,yyyy | yyyy |
四半期 | quarter | qq,q | q |
月 | month | mm,m | m |
年始からの通算日 | dayofyear | dy,y | y |
日 | day | dd,d | d |
週 | week | wk,ww | ww |
曜日 | weekday | dw | w |
時間 | hour | hh | h |
分 | minute | mi,n | n |
秒 | second | ss,s | s |
ミリ秒 | millisecond | ms |
実行例
MySQLの実行例
/* MySQL 2010/04/30と2009/02/01の差を日で求めるサンプル */
SELECT DATEDIFF('2010-04-30','2009-02-01');
SQLServerの実行例
/* SQL Server 2010/04/30と2009/02/01の差を日で求めるサンプル */
SELECT DATEDIFF(day,'2009-02-01','2010-04-30');
現在から指定の日までの日数を計算
/* SQL Server 現在から指定の日までの日数を求めるサンプル */
SELECT DATEDIFF(day,'2020/1/1',GETDATE())