猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

DataBase MySQL

MySQLの時間のフォーマット

投稿日:2013年5月27日 更新日:

MySQLのdatetime型はそのままSELECTすると、
2013-05-15 13:45:59
のように表示されてしまいます。
yyyy-mm-ddではなく、yyyy/mm/dd
がいい場合もあります。

DATE_FORMAT関数でフォーマットします。
使用できる指定子は以下の通りです。

%M 月の名前(January..December)。
%W 曜日名(Sunday..Saturday)。
%D 英語のサフィックス付きの日付(0th、1st、2nd、3rd など)。
%Y 4 桁の数値で表した年。
%y 2 桁の数値で表した年。
%X 日曜日を週の最初の日とした場合の週に使用する、4 桁の数値で表した年。%V と組み合わせて使用。
%x 月曜日を週の最初の日とした場合の週に使用する、4 桁の数値で表した年。%v と組み合わせて使用。
%a 略式の曜日名(Sun..Sat)。
%d 数値で表した日付(00..31)。
%e 数値で表した日付(0..31)。
%m 数値で表した月(00..12)。
%c 数値で表した月(0..12)。
%b 略式の月名(Jan..Dec)。
%j 年間を通した日にち(001..366)。
%H 時(00..23)。
%k 時(0..23)。
%h 時(01..12)。
%I 時(01..12)。
%l 時(1..12)。
%i 数値で表した分(00..59)。
%r 12 時間形式の時刻(hh:mm:ss に続けて AM または PM)。
%T 24 時間形式の時刻(hh:mm:ss)。
%S 秒(00..59)。
%s 秒(00..59)。
%f マイクロ秒(000000..999999)。
%p AM または PM
%w 曜日(0=Sunday..6=Saturday)。
%U 日曜日を週の最初の日とした場合の週(00..53)。
%u 月曜日を週の最初の日とした場合の週(00..53)。
%V 日曜日を週の最初の日とした場合の週(01..53)。%X と組み合わせて使用。
%v 月曜日を週の最初の日とした場合の週(01..53)。%x と組み合わせて使用。

%fでマイクロ秒まであるのには驚きです。

mysql> select now(),DATE_FORMAT(now(),'%Y/%m/%d %H:%i:%S'),DATE_FORMAT(now(),'%Y/%m/%d %H:%i:%S.%f');
+---------------------+----------------------------------------+-------------------------------------------+
| now()               | DATE_FORMAT(now(),'%Y/%m/%d %H:%i:%S') | DATE_FORMAT(now(),'%Y/%m/%d %H:%i:%S.%f') |
+---------------------+----------------------------------------+-------------------------------------------+
| 2013-05-17 06:19:04 | 2013/05/17 06:19:04                    | 2013/05/17 06:19:04.000000                |
+---------------------+----------------------------------------+-------------------------------------------+
1 row in set (0.00 sec)

マイクロ秒が0になっていますね・・・ :x001:
これは、私のMySQLのバージョンが5.0だからです。
5.6以上のMySQLをご使用なら、datetime型はマイクロ秒まで対応しているので正しく表示されるはずです。

mysql> select version();
+------------+
| version()  |
+------------+
| 5.0.95-log |
+------------+
1 row in set (0.01 sec)

Gooleアドセンス用336

Gooleアドセンス用336

-DataBase, MySQL

執筆者:

関連記事

sqlserver

SQL Server 構成マネージャーを起動する

SQL Server 構成マネージャーがない。 何故か、コンピューターの管理の中に入っていた。 また検索窓からは以下のように検索できる。 ・SQL Server 2014 の場合   SQLServe …

mysql

MySQLの予約語はバッククォーテーション囲んで使用する

列名に”from”や”to”を使用したいことがあるはずです。 そうした場合は”`”(バッククォーテーション)で囲みましょう。 insert into m …

mysql

ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.

ダンプをインポートしようとすると下記エラーが表示されてインポートできませんでした。 [root@centos]# mysql -u root -p reset master; するとインポートできまし …

mysql

MySQLのwait_timeout

データベースやWebサーバーは、実際に稼働してから問題が多発します。 データ量が増えてきたり、アクセスが増えてきたらまずレスポンスの問題が発生するでしょう。 経験のあるエンジニアがいれば、十分なテスト …

mysql

MySQLのエラー、クエリ、スロークエリのログ

全て /etc/my.cnf の [mysqld] に追記してサーバーを再起動すれば出力されるようになります。 エラーログは開発時には警告も出力しておけばよいでしょう。 クエリログは全てのSELECT …