MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLでDateTime型の値を文字列に変換する方法【DATE_FORMAT関数の使い方】

MySQLでDateTime型の値を文字列として扱いたい場合、DATE_FORMAT() 関数を使うのが最も一般的な方法です。この関数を使えば、日時データを自由なフォーマットの文字列に変換して取得できます。

DATE_FORMAT() の基本構文

SELECT DATE_FORMAT(カラム名, '%d %m %y') AS 別名 FROM テーブル名;

第2引数にはフォーマット指定子を渡します。「%d」が日、「%m」が月、「%y」が西暦下2桁を表します。他にも「%Y」(4桁の年)や「%H:%i:%s」(時刻)など、さまざまな指定子が用意されています。

サンプルテーブルを作成する

実際に動きを確認するため、まずはテスト用のテーブルを作成しましょう。

mysql> CREATE TABLE DateAsStringDemo
    -> (
    -> YourDateTime DATETIME
    -> );
Query OK, 0 rows affected (0.57 sec)

DATETIME型のカラムに現在の日付を挿入する

続いて、curdate() 関数を使って現在の日付を挿入します。

mysql> INSERT INTO DateAsStringDemo VALUES(curdate());
Query OK, 1 row affected (0.24 sec)

登録されたレコードを確認する

SELECT文で全レコードを表示してみましょう。

mysql> SELECT * FROM DateAsStringDemo;

実行結果は以下の通りです。

+---------------------+
| YourDateTime        |
+---------------------+
| 2018-11-26 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

DATETIME値を文字列に変換する

それでは、DATE_FORMAT() を使って日付を文字列に変換してみます。

mysql> SELECT DATE_FORMAT(YourDateTime,'%d %m %y') AS YourDateAsString FROM DateAsStringDemo;

実行結果:

+------------------+
| YourDateAsString |
+------------------+
| 26 11 18         |
+------------------+
1 row in set (0.00 sec)

このように、DATETIME型の値が「26 11 18」という形式の文字列に変換されました。フォーマット指定子を組み合わせることで、「%Y年%m月%d日」のような日本語表記にも対応できるため、画面表示やCSV出力などの場面で非常に便利です。

  1. MySQLで文字列を日時(DATETIME)に変換する方法【STR_TO_DATE活用術】

    MySQLでは、STR_TO_DATE()関数とフォーマット指定子を組み合わせることで、VARCHAR型などで文字列として保存されている日付・時刻データを、DATETIME型に変換することができます。 基本構文 フォーマット指定子を使用した基本構文は以下の通りです。 select str_to_date(yourColumnName,%d/%m/%Y %h:%i %p) as anyAliasName from yourTableName; 主なフォーマット指定子の意味 %d:日(2桁) %m:月(2桁) %Y:年(4桁) %h:時(12時間制・2桁) %i:分(2桁) %p:午前/午後

  2. MySQLで保存済みのMD5文字列を10進数値に変換する方法

    MySQLで保存済みのMD5文字列を10進数値に変換する方法conv()関数とcast()関数を組み合わせて使用することで、16進数を10進数値へ変換できます。注意 − MD5は16進数で表現されます。サンプルテーブルの作成まず、テーブルを作成しましょう −mysql> create table DemoTable (    Password text ); Query OK, 0 rows affected (0.60 sec)insertコマンドを使って、テーブルにいくつかのレコードを挿入します −mysql> insert into DemoTable v