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

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値として扱いたい場合に非常に便利なテクニックです。ぜひ実際の開発でも活用してみてください。

  1. 【PHP】MySQLのDATETIME型から日付だけを抽出して変数に代入する方法

    MySQLのDATETIME型フィールド(例:2018-02-13 13:10:15)から「日付だけ」を取り出したい場合、PHPではDateTimeクラスを使うのが最もシンプルで確実な方法です。SQL側でDATE_FORMAT()を使う方法もありますが、PHP側で柔軟にフォーマットを制御できるDateTimeクラスの利用がおすすめです。DateTime::createFromFormat() の基本構文DateTimeクラスの静的メソッド createFromFormat() を使うと、指定した形式の日時文字列からDateTimeオブジェクトを生成できます。その後、format() メソッドで

  2. MySQLでvarchar型をdatetime型に変換して比較する方法

    MySQLでvarcharをdatetimeに変換して比較するには?varchar型として保存された日時データをdatetime型に変換して比較するには、STR_TO_DATE()関数を使用します。この関数を使うことで、文字列形式の日付データを指定したフォーマットでdatetime型に変換できます。ここでは、実際の例を通じて具体的な手順を解説します。1. サンプルテーブルの作成まず、日時データをvarchar型のカラムに格納するテーブルを作成します。mysql> create table DemoTable1565     -> ( &nbs