MySQLでDATE型とTIME型からDATETIMEを作成する方法
はじめに
MySQLでは、ADDTIME()関数を使うことで、DATE型の値とTIME型の値を組み合わせてDATETIME型の値を作成できます。この記事では、その具体的な手順をサンプルコードとともに分かりやすく解説します。
基本構文
DATEとTIMEからDATETIMEを作成する際の基本構文は以下の通りです。
SELECT ADDTIME(CONVERT(yourDateColumnName, datetime), yourTimeColumnName) AS anyVariableName FROM yourTableName;
ポイントは、CONVERT関数でDATE型のカラムを一度DATETIME型に変換してから、ADDTIME()関数でTIME型の値を加算する点です。これにより、日付と時刻が結合された1つのDATETIME値が得られます。
サンプルテーブルの作成
まず、動作を確認するためのテーブルを作成しましょう。以下のクエリを実行します。
mysql> CREATE TABLE DateTime
-> (
-> DueDate date,
-> DueTime time
-> );
Query OK, 0 rows affected (1.19 sec)
このテーブルには、「DueDate」(日付)と「DueTime」(時刻)という2つのカラムが定義されています。
データの挿入
次に、日付と時刻をそれぞれ別々に挿入します。CURDATE()関数で現在の日付を、NOW()関数で現在の時刻を取得しています。
mysql> INSERT INTO DateTime VALUES(CURDATE(), NOW());
Query OK, 1 row affected (0.08 sec)
SELECT文でテーブル内のすべてのレコードを確認してみましょう。
mysql> SELECT * FROM DateTime;
実行結果は以下の通りです。
+------------+----------+
| DueDate | DueTime |
+------------+----------+
| 2018-12-11 | 09:59:07 |
+------------+----------+
1 row in set (0.00 sec)
DATETIMEへの変換
それでは、冒頭で紹介した構文を実際に実装して、日付と時刻からDATETIMEを作成してみます。
mysql> SELECT ADDTIME(CONVERT(DueDate, datetime), DueTime) AS DATETimeDemo FROM DateTime;
実行結果を見ると、日付と時刻が正しく結合されたDATETIME型の値が取得できていることがわかります。
+---------------------+
| DATETimeDemo |
+---------------------+
| 2018-12-11 09:59:07 |
+---------------------+
1 row in set (0.00 sec)
まとめ
MySQLでDATE型とTIME型からDATETIME型を作成するには、CONVERT関数で日付をDATETIMEに変換し、ADDTIME()関数で時刻を加算します。締切日と締切時刻のように、日付と時刻を別々のカラムで管理しているデータを、1つのDATETIME値として扱いたい場合に非常に便利なテクニックです。ぜひ実際の開発でも活用してみてください。
-
【PHP】MySQLのDATETIME型から日付だけを抽出して変数に代入する方法
MySQLのDATETIME型フィールド(例:2018-02-13 13:10:15)から「日付だけ」を取り出したい場合、PHPではDateTimeクラスを使うのが最もシンプルで確実な方法です。SQL側でDATE_FORMAT()を使う方法もありますが、PHP側で柔軟にフォーマットを制御できるDateTimeクラスの利用がおすすめです。DateTime::createFromFormat() の基本構文DateTimeクラスの静的メソッド createFromFormat() を使うと、指定した形式の日時文字列からDateTimeオブジェクトを生成できます。その後、format() メソッドで
-
MySQLでvarchar型をdatetime型に変換して比較する方法
MySQLでvarcharをdatetimeに変換して比較するには?varchar型として保存された日時データをdatetime型に変換して比較するには、STR_TO_DATE()関数を使用します。この関数を使うことで、文字列形式の日付データを指定したフォーマットでdatetime型に変換できます。ここでは、実際の例を通じて具体的な手順を解説します。1. サンプルテーブルの作成まず、日時データをvarchar型のカラムに格納するテーブルを作成します。mysql> create table DemoTable1565 -> ( &nbs