MySQLで現在の日付と時刻を取得する方法について書いています。
NOW関数を使うと、現在の日付と時刻を取得することができます。
この記事に載せているSQLはMySQLのバージョン8.0.32を使って動作を確認しています。
公式ドキュメントではこちらに記事があります。
関連情報になりますが、現在の日付(年月日)のみ取得したいときにはCURDATE関数が使えます。
また、現在の時刻のみを取得したいときにはCURTIME関数が使えます。
MySQLで現在の日付と時間を取得する
現在の日付と時間を取得するには、NOW関数を使います。
SELECT NOW();
実際にNOW関数を使うと、下記のように現在の日時が取得できます。
mysql> SELECT NOW();
+---------------------+
| NOW() |
+---------------------+
| 2023-05-24 16:38:49 |
+---------------------+
1 row in set (0.00 sec)
現在日時は、このように「YYYY-MM-DD hh:mm:ss
」形式で返ってきます。
ハイフンやコロンを抜きたい
ハイフンやコロンを抜いて「YYYYMMDDhhmmss
」形式で返すこともできます。
このときには「+ 0」をします。
mysql> SELECT NOW() + 0;
+----------------+
| NOW() + 0 |
+----------------+
| 20230524164055 |
+----------------+
1 row in set (0.01 sec)
このように「+ 0」すると、年月日と時分秒がくっついて返ってきます。
NOW関数を使った登録確認
NOW関数を使って、下記の型にデータを登録すると、どうなるのか確認してみます。
・文字列(VARCHAR)
・日付型(DATE)
・日時型(DATETIME)
・タイムスタンプ型(TIMESTAMP)
temporary_now
テーブルを作成しました。
NOW関数でデータを登録するため、それぞれの型のカラムを用意しました。
CREATE TABLE temporary_now (
now_number BIGINT,
now_string VARCHAR(20),
now_date DATE,
now_datetime DATETIME,
now_timestamp TIMESTAMP
);
全てのカラムにNOW関数でデータを登録します。
下記のINSERT文を実行してみました。
INSERT INTO temporary_now VALUE (NOW(), NOW(), NOW(), NOW(), NOW());
登録した後にSELECT文でレコードを取得してみました。
全てのカラムにデータが登録されました。
now_number | now_string | now_date | now_datetime | now_timestamp |
---|---|---|---|---|
20230524164553 | 2023-05-24 16:45:53 | 2023-05-24 | 2023-05-24 16:45:53 | 2023-05-24 16:45:53 |
数値型(BIGINT)はハイフンやコロンが消えて登録されました。(ちなみにINTにすると、桁数が足りなくてエラーとなります)
日付型(DATE)にも特に問題なく、時間が省略されて登録されました。
MySQLで現在の日付と時間を取得する方法まとめ
今回は、MySQLで現在の日付と時間が取得できるNOW関数について書きました。
記事の内容をまとめると、下記のようになります。
・「+ 0」をすると、ハイフンやコロンが消えた形で返ってくる
・BIGINT/VARCHAR/DATE/DATETIME/TIMESTAMPの型に登録することができた
コメント