猫型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

執筆者:

関連記事

mysql

MySQL:エラー:The total number of locks exceeds the lock table size

The total number of locks exceeds the lock table sizeは、大量にデータを削除する場合等に発生する可能性があります。 見ての通り、ロックするメモリー不 …

sqlserver

application log ってどこ?

SQLSERVERのメンテナンスプランを使用してバックアップを取得していたのですが、取得できていませんでした。 SQL Serverログには下記メッセージが表示されていました。 BACKUP fail …

sqlserver

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

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

select insert

私は以前SQLの順番にinsert selectと呼んでいて、笑われたことがあります。 select insertだ!と当時の上司に言われました。 なるほど、副問い合わせのselectが実行されて、そ …

sqlserver

SQLSERVER「Login failed for user ‘xxxxxxx’. 理由: 指定された名前に一致するログインが見つかりませんでした」

Windows認証でAdministratorを指定しているのにログインできない。 そんな場合は以下の手順でAdministratorユーザーを作成します。 INDEX1 起動時のパラメーターの変更2 …