MySQLで現在の日付と時間を取得する方法!(NOW関数)

MySQL MySQL

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関数を使って、下記の型にデータを登録すると、どうなるのか確認してみます。

・数値型(BIGINT)
・文字列(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関数について書きました。
記事の内容をまとめると、下記のようになります。

・NOW関数を使うと、現在の日付と時間を取得することができる
・「+ 0」をすると、ハイフンやコロンが消えた形で返ってくる
・BIGINT/VARCHAR/DATE/DATETIME/TIMESTAMPの型に登録することができた

コメント

タイトルとURLをコピーしました