MySQL でのみ Datetime 型から Date 型に変換
-
MySQL で
DATETIME
型からDATE
型に変換する -
DATE()
を使用して、MySQL でDATETIME
をDATE
に変換する -
CAST()
を使用して、MySQL でDATETIME
をDATE
に変換する -
CONVERT()
を使用して、MySQL でDATETIME
をDATE
に変換する -
DATE_FORMAT()
を使用して、MySQL でDATETIME
をDATE
に変換する
今日は、MySQL で DATETIME
型を DATE
型に変換する DATE()
、CAST()
、CONVERT()
、および DATE_FORMAT()
メソッドについて学びます。 上記の方法は利用可能で、MySQL バージョン 4.0 以降で使用できます。
MySQL で DATETIME
型から DATE
型に変換する
コード例で理解するために、id
、productName
、orderNumber
、および orderDateTime
を属性として持つ orders
テーブルを作成してみましょう。 id
フィールドを使用して主キーも作成します。 次のクエリを参照してください。
コード例:
CREATE TABLE orders(
id INT NOT NULL,
productName VARCHAR(50) NOT NULL,
orderNumber INT NOT NULL,
orderDateTime DATETIME NOT NULL,
PRIMARY KEY(id)
);
INSERT INTO orders (id, productName, orderNumber, orderDateTime)
VALUES
(1, 'Oppo F17', 3322, '2022-04-11 04:32:15'),
(2, 'DELL Laptop', 5433, '2022-05-12 12:23:09'),
(3, 'HP Mouse', 3489, '2022-05-16 07:23:16');
SELECT * FROM orders;
出力:
+----+-------------+-------------+---------------------+
| id | productName | orderNumber | orderDateTime |
+----+-------------+-------------+---------------------+
| 1 | Oppo F17 | 3322 | 2022-04-11 04:32:15 |
| 2 | DELL Laptop | 5433 | 2022-05-12 12:23:09 |
| 3 | HP Mouse | 3489 | 2022-05-16 07:23:16 |
+----+-------------+-------------+---------------------+
3 rows in set (0.00 sec)
テーブルの準備ができたら、プロジェクトの要件に応じて、次のいずれかの方法を使用して目標を達成できます。
DATE()
を使用して、MySQL で DATETIME
を DATE
に変換する
コード例:
SELECT id, productName, orderNumber, DATE(orderDateTime) FROM orders;
出力:
+----+-------------+-------------+---------------------+
| id | productName | orderNumber | DATE(orderDateTime) |
+----+-------------+-------------+---------------------+
| 1 | Oppo F17 | 3322 | 2022-04-11 |
| 2 | DELL Laptop | 5433 | 2022-05-12 |
| 3 | HP Mouse | 3489 | 2022-05-16 |
+----+-------------+-------------+---------------------+
3 rows in set (0.00 sec)
DATE()
関数は、有効な DATE
または DATETIME
タイプ フィールドから DATE
部分を取得できます。 無効な式が渡された場合、NULL
を返します。
CAST()
を使用して、MySQL で DATETIME
を DATE
に変換する
コード例:
SELECT id, productName, orderNumber, CAST(orderDateTime AS DATE) FROM orders;
出力:
+----+-------------+-------------+-----------------------------+
| id | productName | orderNumber | CAST(orderDateTime AS DATE) |
+----+-------------+-------------+-----------------------------+
| 1 | Oppo F17 | 3322 | 2022-04-11 |
| 2 | DELL Laptop | 5433 | 2022-05-12 |
| 3 | HP Mouse | 3489 | 2022-05-16 |
+----+-------------+-------------+-----------------------------+
3 rows in set (0.00 sec)
CAST()
メソッドは、あるデータ型の値を別の特定のデータ型にキャスト (変換) するために使用されます。
CONVERT()
を使用して、MySQL で DATETIME
を DATE
に変換する
コード例:
SELECT id, productName, orderNumber, CONVERT(orderDateTime, DATE) FROM orders;
出力:
+----+-------------+-------------+------------------------------+
| id | productName | orderNumber | CONVERT(orderDateTime, DATE) |
+----+-------------+-------------+------------------------------+
| 1 | Oppo F17 | 3322 | 2022-04-11 |
| 2 | DELL Laptop | 5433 | 2022-05-12 |
| 3 | HP Mouse | 3489 | 2022-05-16 |
+----+-------------+-------------+------------------------------+
3 rows in set (0.00 sec)
CONVERT()
メソッドを使用して、DATETIME
型フィールドを DATE
のみに変換することもできます。 2つの引数を受け入れます。1つ目は変換する必要がある値で、2つ目は指定された値が変換されるデータ型です。
DATE_FORMAT()
を使用して、MySQL で DATETIME
を DATE
に変換する
コード例:
SELECT id, productName, orderNumber,
DATE_FORMAT(orderDateTime, '%Y-%m-%d') FROM orders;
出力:
+----+-------------+-------------+----------------------------------------+
| id | productName | orderNumber | DATE_FORMAT(orderDateTime, '%Y-%m-%d') |
+----+-------------+-------------+----------------------------------------+
| 1 | Oppo F17 | 3322 | 2022-04-11 |
| 2 | DELL Laptop | 5433 | 2022-05-12 |
| 3 | HP Mouse | 3489 | 2022-05-16 |
+----+-------------+-------------+----------------------------------------+
3 rows in set (0.00 sec)
DATE_FORMAT()
関数は DATETIME
を DATE
型に変換し、現在の日付形式を変更するのに役立ちます。 たとえば、DATE
を d/m/Y
形式で表示したい場合は、次のようにします。
コード例:
SELECT id, productName, orderNumber,
DATE_FORMAT(orderDateTime, '%d/%m/%Y') FROM orders;
出力:
+----+-------------+-------------+----------------------------------------+
| id | productName | orderNumber | DATE_FORMAT(orderDateTime, '%d/%m/%Y') |
+----+-------------+-------------+----------------------------------------+
| 1 | Oppo F17 | 3322 | 11/04/2022 |
| 2 | DELL Laptop | 5433 | 12/05/2022 |
| 3 | HP Mouse | 3489 | 16/05/2022 |
+----+-------------+-------------+----------------------------------------+
3 rows in set (0.00 sec)
月番号の代わりに月名を表示したい場合は、DATE_FORMAT()
関数を使用して次の形式に変換することもできます。
コード例:
SELECT id, productName, orderNumber,
DATE_FORMAT(orderDateTime, '%D %M %Y') FROM orders;
出力:
+----+-------------+-------------+----------------------------------------+
| id | productName | orderNumber | DATE_FORMAT(orderDateTime, '%D %M %Y') |
+----+-------------+-------------+----------------------------------------+
| 1 | Oppo F17 | 3322 | 11th April 2022 |
| 2 | DELL Laptop | 5433 | 12th May 2022 |
| 3 | HP Mouse | 3489 | 16th May 2022 |
+----+-------------+-------------+----------------------------------------+
3 rows in set (0.00 sec)