MySQLの日付型の変換とかフォーマットとかする方法

MySQLの日付型の変換とかフォーマットとかする方法

どのデータベースも日付型だけは面倒なので、MySQLの日付型の変換方法とかを纏めてみました。

文字列型を日付型にする

str_to_dateを使います。

select str_to_date('2019/02/21', '%Y/%m/%d')

これで日付型になりますので、JavaならLocalDateなどで扱えます。

%YのYも大文字小文字で意味合いが違うので注意です。

ざっくり纏めました。

フォーマット 意味
%d 01〜31
%e 0〜31
%m 00~12
%Y 2019
%y 19

このフォーマットの大文字小文字を間違えるとnullになってしまうので注意が必要です。

公式サイト

日付の計算

だいたいSQLで日付の計算ができるのですが、MySQLでも日付計算が可能です。

MONTH,YEAR,DAYなどを使います。

select now() - interval 2 YEAR

システム日付から2年引いています。

select now() + interval 5 MONTH

システム日付から5ヶ月足しています。

select '2019/01/31' + interval 1 month

日付から1か月足していますが、2019/02/28となります。

+や-のかわりにDATE_ADDやDATE_SUB関数が使えます。

select DATE_ADD('2019/01/31',interval 1 month) 2019-02-28
select DATE_SUB('2019/01/31',interval 1 month) 2018-12-31

フォーマットする

日付型をフォーマットするにはDateFormatを使用します。

第一引数は日付型です。第二引数がフォーマットです。

select date_format('2019/02/21', '%Y/%m/%d') 2019/02/21
select date_format('2019/02/21', '%Y-%m-%d') 2019-02-21
select date_format('2019/02/21', '%Y-%m') 2019-02

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました