【MySQL】現在の日時と日付のみを取得するクエリの使い方
MySQLでは、SELECT NOW()を実行することで、現在の日付と時刻の両方を取得できます。一方、現在の日付だけが必要な場合は、CURDATE()を使用します。
基本構文
現在の日時(日付+時刻)を取得する構文
SELECT NOW();
現在の日付のみを取得する構文
SELECT CURDATE();
それでは、実際に上記の構文を実行して確認してみましょう。
実行例
ケース1:現在の日付と時刻の両方を取得する場合
mysql> SELECT NOW();
出力結果
+---------------------+ | NOW() | +---------------------+ | 2019-06-02 15:30:39 | +---------------------+ 1 row in set (0.00 sec)
NOW()は「YYYY-MM-DD HH:MM:SS」形式で、現在の日付と時刻をまとめて返します。
ケース2:現在の日付のみを取得する場合
mysql> SELECT CURDATE();
出力結果
+------------+ | CURDATE() | +------------+ | 2019-06-02 | +------------+ 1 row in set (0.00 sec)
CURDATE()は「YYYY-MM-DD」形式の日付のみを返すため、時刻情報が不要な場合に便利です。
補足:その他の関連関数
用途に応じて、以下のような関数も活用できます。
- NOW():現在の日付と時刻を返す(DATETIME型)
- CURDATE() / CURRENT_DATE:現在の日付のみを返す(DATE型)
- CURTIME():現在の時刻のみを返す(TIME型)
- SYSDATE():関数が実際に実行された時点の日時を返す
また、SELECT DATE(NOW());のようにDATE()関数を組み合わせれば、NOW()の結果から日付部分だけを取り出すことも可能です。状況に応じて適切な関数を使い分けましょう。
-
MySQLで当日の00:00から現在時刻までのレコードを抽出するクエリの書き方
はじめにMySQLで「今日の日付の午前0時(00:00)から現在時刻まで」のレコードを取得したいケースはよくあります。例えば、現在の日時が 2019-09-14 08:50:10 である場合、2019-09-14 00:00:00 から 2019-09-14 08:50:10 までの範囲にあるレコードを抽出することになります。本記事では、実際にテーブルを作成し、データを挿入しながら、この条件を実現するクエリを具体的に解説します。サンプルテーブルの作成まず、DATETIME型のカラムを持つテーブルを作成します。mysql> create table DemoTable( &nbs
-
MySQLでSELECT *を使って現在の日付のレコードを検索する方法
現在の日付を取得するには CURDATE() 関数を使用します。さらに、STR_TO_DATE() 関数で文字列を日付型に変換し、現在の日付と比較することで、該当するレコードを抽出できます。以下に基本的な構文を示します。基本構文select *from テーブル名 where str_to_date(カラム名,書式指定子)=curdate();それでは、現在の日付が「27/10/2019」である場合を例に、具体的な手順を見ていきましょう。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> (