SQL 関数:日付関数

加減
select DATE_ADD(date_col, INTERVAL 1 SECOND) 〜
select DATE_SUB(date_col, INTERVAL 1 SECOND) 〜
SECOND / MINUTE / HOUR / DAY / WEEK / MONTH / YEAR
取得
select YEAR(date_col) 〜
YEAR() / MONTH() / DAY() / HOUR() / MINUTE() / SECOND() / WEEKDAY()

曜日
select DAYOFWEEK(date_col) 〜
注意
ISO-8601形式
1(日)、2(月) … 7(土)

時間差
時間差(日)
‘2000-08-25’ ‘2000-08-24’
→1
‘2000-08-25 12:00:00’ ‘2000-08-25 10:00:00’
→0.083333(2時間差=2/24)
‘2000-08-25’ + ‘2000-08-24’
エラー

時間差(月)
MONTHS_BETWEEN(日付型列名, 日付型列名)

MONTHS_BETWEEN(‘2000-08-25’, ‘2015-06-25’)
→2
MONTHS_BETWEEN(‘2000-08-25’, ‘2015-05-10’)
→3.48387097
※1ヶ月未満の差がある場合は31日の日割り計算される。
3ヶ月15日=3+15/31=0.48387097

MONTHS_BETWEEN(‘2000-04-31’, ‘2015-02-28’)
→2
※引数が両方月末の場合は月数のみの差が算出される

時間差(年)
TRUNC(MONTHS_BETWEEN(日付型列名, 日付型列名) /12)
※TRUNC:切り捨て

年齢
TRUNC(MONTHS_BETWEEN(SYSDATE, 誕生日) /12)
TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE(‘2005/03/29′,’YYYY/MM/DD’)) /12)
※SYSDATE:システム日付

切り捨て
date_trunc( ‘second’, now() )
秒未満を切り捨て
フォーマット変更

SQL 関数:変換関数」参照

SQL

前の記事

SQL 関数:文字関数
SQL

次の記事

SQL 関数:数値関数