忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

MySQL 日付データのフォーマット変換する方法について

MySQL でも日付型のデータを各種フォーマット変換を行って表示することがよくあります。
今回はその変換を行う DATE_FORMAT 関数の使い方について説明します。

DATE_FORMAT 関数は以下の様な引数をとります。

■[DATE_FORMAT]の引数について

DATE_FORMAT(date_data, format_string)
--   date_data     : 変換を行う日付データ
--   format_string : 変換指定文字列('%Y', '%m', '%d' ... などの文字列)

DATE_FORMAT 関数を使った簡単な例のSQLを以下に示します。

MariaDB [(none)]> SELECT DATE_FORMAT(NOW(), '%Y/%m/%d');
+--------------------------------+
| DATE_FORMAT(NOW(), '%Y/%m/%d') |
+--------------------------------+
| 2024/01/17                     |
+--------------------------------+
1 row in set (0.48 sec)

変換指定文字列として利用できるものは以下の指定子があります。

指定子説明
%a 簡略曜日名 (Sun..Sat)
%b 簡略月名 (Jan..Dec)
%c 月、数字 (0..12)
%D 英語のサフィクスを持つ日付 (0th, 1st, 2nd, 3rd, …)
%d 日、数字 (00..31)
%e 日、数字 (0..31)
%f マイクロ秒 (000000..999999)
%H 時間 (00..23)
%h 時間 (01..12)
%I 時間 (01..12)
%i 分、数字 (00..59)
%j 年間通算日 (001..366)
%k 時 (0..23)
%l 時 (1..12)
%M 月名 (January..December)
%m 月、数字 (00..12)
%p AM または PM
%r 時間、12 時間単位 (hh:mm:ss に AM または PM が続く)
%S 秒数 (0059)
%s 秒数 (0059)
%T 時間、24 時間単位 (hh:mm:ss)
%U 週 (00..53)、日曜日が週の初日、WEEK() モード 0
%u 週 (00..53)、月曜日が週の初日、WEEK() モード 1
%V 週 (01..53)、日曜日が週の初日、WEEK() モード 2、%X とともに使用
%v 週 (01..53)、月曜日が週の初日、WEEK() モード 3、%x とともに使用
%W 曜日名 (Sunday..Saturday)
%w 曜日 (0=Sunday..6=Saturday)
%X 年間の週、日曜日が週の初日、数字、4 桁、%V とともに使用
%x 年間の週、月曜日が週の初日、数字、4 桁、%v とともに使用
%Y 年、数字、4 桁
%y 年、数字 (2 桁)
%% リテラル % 文字
%x x (上記にないすべての 「x」)


いろんな指定子があるのですが、通常使うのは年月日の指定子と24時制の時刻の指定子ぐらいでしょうか。 そこで以下に例を示します。

MariaDB [(none)]> SELECT
    ->     DATE_FORMAT(NOW(), '%Y/%m/%d')  as  'YYYY/mm/dd'
    ->    ,DATE_FORMAT(NOW(), '%y/%m/%d')  as  'yy/mm/dd'
    ->    ,DATE_FORMAT(NOW(), '%H:%i:%s')  as  'HH:MM:SS'
    ->    ,DATE_FORMAT(NOW(), '%Y年%m月%d日')  as 'YYYY年mm月dd日'
    ->    ,DATE_FORMAT(NOW(), '%H%時%i%分%s%秒') as 'HH時MM分SS秒'
    -> ;
+------------+----------+----------+----------------+--------------+
| YYYY/mm/dd | yy/mm/dd | HH:MM:SS | YYYY年mm月dd日 | HH時MM分SS秒 |
+------------+----------+----------+----------------+--------------+
| 2024/01/17 | 24/01/17 | 18:26:01 | 2024年01月17日 | 18時26分01秒 |
+------------+----------+----------+----------------+--------------+
1 row in set (0.00 sec)











PR

コメント

コメントを書く