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

MySQLで日付と時刻の列をタイムスタンプに結合しますか?


日付と時刻の列をタイムスタンプに結合するには、cast()関数とconcat()を使用できます。

構文は次のとおりです-

select cast(concat(yourDateColumnName, ' ', yourTimeColumnName) as datetime) as anyVariableName from yourTableName;

上記の概念では、日付と時刻が文字列形式の場合にcast()を使用します。 cast()関数は日時にのみ使用できます。上記の構文を理解するために、テーブルを作成しましょう。

テーブルを作成するためのクエリは次のとおりです-

mysql> create table DateAndTimeToTimestamp
   −> (
   −> Duedate date,
   −> DueTime time
   −> );
Query OK, 0 rows affected (0.51 sec)

挿入コマンドを使用して、テーブルにレコードを挿入します。クエリは次のとおりです-

mysql> insert into DateAndTimeToTimestamp values(date_add(curdate(),interval 2 day),'10:30:02');
Query OK, 1 row affected (0.34 sec)

mysql> insert into DateAndTimeToTimestamp values(date_add(curdate(),interval -2 day),'12:20:45');
Query OK, 1 row affected (0.17 sec)

mysql> insert into DateAndTimeToTimestamp values(date_add(curdate(),interval 1 day),'01:32:42');
Query OK, 1 row affected (0.21 sec)

mysql> insert into DateAndTimeToTimestamp values(date_add(curdate(),interval -1 day),'14:25:58');
Query OK, 1 row affected (0.30 sec)

selectステートメントを使用して、テーブルのすべてのレコードを表示します。クエリは次のとおりです-

mysql> select *from DateAndTimeToTimestamp;

以下は出力です-

+------------+----------+
| Duedate    | DueTime  |
+------------+----------+
| 2018-12-16 | 10:30:02 |
| 2018-12-12 | 12:20:45 |
| 2018-12-15 | 01:32:42 |
| 2018-12-13 | 14:25:58 |
+------------+----------+
4 rows in set (0.00 sec)

日付と時刻の列をタイムスタンプに結合するクエリは次のとおりです-

mysql> select concat(Duedate, ' ', DueTime) as timestampDemo from DateAndTimeToTimestamp;

以下は出力です-

+---------------------+
| timestampDemo       |
+---------------------+
| 2018-12-16 10:30:02 |
| 2018-12-12 12:20:45 |
| 2018-12-15 01:32:42 |
| 2018-12-13 14:25:58 |
+---------------------+
4 rows in set (0.00 sec)

  1. 日付列をNULLにするMySQLクエリ?

    日付列をNULLにするには、ALTER TABLEとMODIFYを使用して、日付をNULLに設定します。以下は構文です- alter table yourTableName modify column yourColumnName date NULL; まず、テーブルを作成しましょう。ここでは、列をNOTNULL-として設定しました。 mysql> create table DemoTable (    ShippingDate date NOT NULL ); Query OK, 0 rows affected (0.78 sec) ここで、上記の表にNULL値

  2. タイムスタンプと列挙型の両方で並べ替えるMySQLクエリ?

    これには、ORDER BY DATE()を使用できます。まず、テーブルを作成しましょう。ここでは、タイプDATEの列とタイプENUM-の列があります。 mysql> create table DemoTable    -> (    -> JoiningDate date,    -> Status ENUM('Good','Excellent','Bad')    -> ); Query OK, 0 rows affected (0.5