MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

【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()の結果から日付部分だけを取り出すことも可能です。状況に応じて適切な関数を使い分けましょう。

  1. 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

  2. MySQLでSELECT *を使って現在の日付のレコードを検索する方法

    現在の日付を取得するには CURDATE() 関数を使用します。さらに、STR_TO_DATE() 関数で文字列を日付型に変換し、現在の日付と比較することで、該当するレコードを抽出できます。以下に基本的な構文を示します。基本構文select *from テーブル名 where str_to_date(カラム名,書式指定子)=curdate();それでは、現在の日付が「27/10/2019」である場合を例に、具体的な手順を見ていきましょう。1. テーブルの作成まず、サンプル用のテーブルを作成します。mysql> create table DemoTable -> (