×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
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
コメント