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

MySQLで特定の日を加えてMM/YY形式をYYYY-MM-DDに変換する方法

MM/YYをYYYY-MM-DDに変換するには?

MySQLでは、STR_TO_DATE()関数を使うことで、MM/YYのような短い日付形式を完全な日付形式(YYYY-MM-DD)に変換できます。ポイントは、CONCAT()関数で欠けている「日」の値を文字列に連結してから変換することです。基本的な構文は以下のとおりです。

select str_to_date(concat('yourDateValue/', yourColumnName), '%d/%m/%y') as anyAliasName
from yourTableName;

使用しているフォーマット指定子の意味は次のとおりです。

  • %d … 日(01〜31)
  • %m … 月(01〜12)
  • %y … 2桁の年

サンプルテーブルの作成

まず、動作を確認するためのテーブルを作成しましょう。

mysql> create table demo46
-> (
-> id int not null auto_increment primary key,
-> short_date varchar(20)
-> );
Query OK, 0 rows affected (0.60 sec)

レコードの挿入

続いて、INSERT文でいくつかのレコードを追加します。

mysql> insert into demo46(short_date) values('09/18');
Query OK, 1 row affected (0.08 sec)

mysql> insert into demo46(short_date) values('12/20');
Query OK, 1 row affected (0.12 sec)

mysql> insert into demo46(short_date) values('11/20');
Query OK, 1 row affected (0.20 sec)

レコードの表示

SELECT文でテーブルの内容を確認してみましょう。

mysql> select *from demo46;

実行すると、次のような出力が得られます。

+----+------------+
| id | short_date |
+----+------------+
|  1 | 09/18      |
|  2 | 12/20      |
|  3 | 11/20      |
+----+------------+
3 rows in set (0.00 sec)

MM/YYからYYYY-MM-DDへの変換クエリ

以下のクエリでは、「24」を日の値として連結し、MM/YY形式のデータをYYYY-MM-DD形式に変換しています。

mysql> select str_to_date(concat('24/', short_date), '%d/%m/%y') as Convert_In_Full_Date
-> from demo46;

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

+----------------------+
| Convert_In_Full_Date |
+----------------------+
| 2018−09−24           |
| 2020−12−24           |
| 2020−11−24           |
+----------------------+
3 rows in set (0.00 sec)

まとめ

このように、CONCAT()で不足している「日」の値を補い、STR_TO_DATE()で日付として解析することで、MM/YY形式の文字列を簡単にYYYY-MM-DD形式へ変換できます。なお、2桁の年(%y)は「00〜69」なら2000年代、「70〜99」なら1900年代として解釈されるため、「18」は2018年、「20」は2020年に自動的に変換されます。用途に応じて適切な日の値を連結して活用してください。

  1. MySQLで特定のカラム名を持つテーブルを検索する方法

    MySQLで特定のカラム名(列名)を持つテーブルを探したい場合は、システムビューである information_schema.columns を利用します。このビューにはデータベース内のすべてのテーブルとカラムの情報が格納されているため、条件を指定して検索するだけで、目的のカラムを持つテーブルを簡単に特定できます。 基本構文 カラム名からテーブル名を検索する際の基本的な構文は以下の通りです。 select distinct table_name from information_schema.columns where column_name like %yourSearchValue% a

  2. MySQLでMM/YY形式の日付をYYYY-MM-DD形式に変換する方法

    MySQLで「11/15」のようなMM/YY形式の文字列を「2015-11-10」のようなYYYY-MM-DD形式の日付に変換するには、str_to_date()関数を使用します。この関数は、指定したフォーマットに従って文字列を日付値へ変換できる便利な関数です。まずは、サンプル用のテーブルを作成し、日付データを登録していきましょう。テーブルの作成例mysql> create table demo72 -> ( -> due_date varchar(40) -> );Query OK, 0 rows affected (2.96 sec)次に、INSE