【MySQL】INT型のyyyymmdd形式の数値を日付(DATE)に変換する方法
MySQLでは、INT型で保存された「yyyymmdd」形式の数値(例:20190108)を日付型に変換したいケースがよくあります。このような場合、DATE()関数を使うことで簡単に変換できます。
本記事では、実際にテーブルを作成し、サンプルデータを用いてDATE()関数による変換手順を解説します。
1. サンプルテーブルの作成
まず、INT型のカラムを持つテーブルを作成します。
mysql> create table DemoTable
(
Number int
);
Query OK, 0 rows affected (0.48 sec)2. サンプルデータの挿入
INSERT文を使って、「yyyymmdd」形式の数値をいくつか登録します。
mysql> insert into DemoTable values(20190108); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(20161231); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(20170411); Query OK, 1 row affected (0.09 sec)
3. 登録データの確認
SELECT文ですべてのレコードを表示してみましょう。
mysql> select *from DemoTable;
実行結果は以下のとおりです。現時点では数値として保存されていることがわかります。
+----------+ | Number | +----------+ | 20190108 | | 20161231 | | 20170411 | +----------+ 3 rows in set (0.00 sec)
4. DATE()関数で日付に変換する
INT型の「yyyymmdd」を日付に変換するには、次のようにDATE()関数を使用します。
mysql> select date(Number) from DemoTable;
実行結果は以下のとおりです。数値が「YYYY-MM-DD」形式の日付に正しく変換されています。
+--------------+ | date(Number) | +--------------+ | 2019-01-08 | | 2016-12-31 | | 2017-04-11 | +--------------+ 3 rows in set (0.00 sec)
補足:STR_TO_DATE()関数との違い
DATE()関数以外にも、STR_TO_DATE()関数を使う方法があります。こちらは文字列や数値に対してフォーマットを明示的に指定できるため、より柔軟な変換が可能です。
mysql> select str_to_date(cast(Number as char), '%Y%m%d') from DemoTable;
単純な「yyyymmdd」形式であればDATE()関数で十分ですが、区切り文字を含む形式や独自フォーマットを扱う場合はSTR_TO_DATE()が便利です。用途に応じて使い分けるとよいでしょう。
-
MySQLで日付型(DATE)カラムを更新する方法をわかりやすく解説
MySQLでは、DATE_ADD()関数とUPDATE文を組み合わせることで、日付型(DATE)カラムの値を簡単に更新できます。この記事では、実際のSQL実行例を交えながら、日付カラムに1年を加算して更新する手順を解説します。 1. テーブルを作成する まず、日付型カラムを持つテーブルを作成します。 mysql> create table DemoTable1451 -> ( -> JoiningDate date -> ); Query OK, 0 rows affected (0.52 sec) ここでは「JoiningDate(入社日)」と
-
MySQLで日付形式を変換する方法|STR_TO_DATE()関数の使い方を解説
MySQLでは、VARCHAR型などで保存された文字列の日付データを、正しい日付・時刻形式に変換したいケースがよくあります。そんなときに活躍するのが STR_TO_DATE() 関数です。この記事では、実際のSQL例とともに具体的な使い方を解説します。サンプルテーブルの作成まず、日付を文字列として格納するテーブルを作成します。mysql> create table DemoTable2010 ( DueDate varchar(20) ); Query OK, 0 rows affected (0.68 sec)テストデータの挿入INSERT文を使って、「日/月/年 時:分:秒」