MySQLで現在の年月日を西暦で取得する方法について書いています。
西暦の年月日を取得するにはCURDATE関数を使います。
CURDATEについては、公式ドキュメントのこちらに書いています。
載せているSQLはMySQLのバージョン8.0.32を使って動作を確認しています。
年月日を取得する
西暦で年月日を取得したいときには、CURDATE関数を使うと良いです。
例えば、下記のSQLを実行します。
SELECT CURDATE();
そうすると、このように年月日が返ってきたことが確認できました。
mysql> SELECT CURDATE();
+------------+
| CURDATE() |
+------------+
| 2023-05-19 |
+------------+
1 row in set (0.00 sec)
ハイフンなしで取得したい
ハイフンなしで取得したいときには、「+ 0」すると取得することができます。
SELECT CURDATE() + 0;
実行すると、下記のようにハイフンなしの結果が返ってきます。
mysql> SELECT CURDATE() + 0;
+---------------+
| CURDATE() + 0 |
+---------------+
| 20230519 |
+---------------+
1 row in set (0.00 sec)
CURRENT_DATE関数は別名
CURRENT_DATEやCURRENT_DATE関数は、CURDATE関数の別名になります。
そのため、下記のように実行すると、どのカラムも同じ結果です。
SELECT CURRENT_DATE, CURRENT_DATE(), CURDATE();
実行すると、どれを使っても西暦で年月日が返ってきました。
mysql> SELECT CURRENT_DATE, CURRENT_DATE(), CURDATE();
+--------------+----------------+------------+
| CURRENT_DATE | CURRENT_DATE() | CURDATE() |
+--------------+----------------+------------+
| 2023-05-19 | 2023-05-19 | 2023-05-19 |
+--------------+----------------+------------+
1 row in set (0.00 sec)
CURDATE関数を使った登録確認
CURDATE関数を使って、テーブルの下記のカラムに、それぞれがどのように登録されるかを確認してみます。
・数値型(INT)
・文字列(VARCHAR)
・日付型(DATE)
・日時型(DATETIME)
・タイムスタンプ型(TIMESTAMP)
・文字列(VARCHAR)
・日付型(DATE)
・日時型(DATETIME)
・タイムスタンプ型(TIMESTAMP)
temporary_date
テーブルを作成しました。
CURDATE関数でデータを登録するため、それぞれの型のカラムを用意しました。
CREATE TABLE temporary_date (
date_number INT,
date_string VARCHAR(20),
date_date DATE,
date_datetime DATETIME,
date_timestamp TIMESTAMP
);
全てのカラムにCURDATE関数でデータを登録します。
下記のINSERT文を実行してみます。
INSERT INTO temporary_date VALUE (CURDATE(), CURDATE(), CURDATE(), CURDATE(), CURDATE());
登録した後にSELECT文でレコードを取得してみました。
全てのカラムにデータが登録されました。
date_number | date_string | date_date | date_datetime | date_timestamp |
---|---|---|---|---|
20230519 | 2023-05-19 | 2023-05-19 | 2023-05-19 00:00:00 | 2023-05-19 00:00:00 |
数値型(INT)に関しては、ハイフンを抜いた数値の値になりました。
時刻があるカラムの場合には、時刻は「00:00:00」となりました。
MySQLで年月日を取得する方法まとめ
今回はMySQLで年月日を取得する方法について書きました。
記事の内容をまとめると、下記のようになります。
・MySQLで年月日を取得したいときにはCURDATE関数を使う。
・CURRENT_DATEやCURRENT_DATE関数は別名なので、動作は同じになる。
・数値を足したり、数値型に入れるとハイフンなしで返ってくる。
・INT/VARCHAR/DATE/DATETIME/TIMESTAMPの型に登録することができた。
・CURRENT_DATEやCURRENT_DATE関数は別名なので、動作は同じになる。
・数値を足したり、数値型に入れるとハイフンなしで返ってくる。
・INT/VARCHAR/DATE/DATETIME/TIMESTAMPの型に登録することができた。
コメント