在 MySQL 中将日期和时间列合并为时间戳?

mysqlmysqli database更新于 2024/1/28 15:07:00

要将日期和时间列合并为时间戳,可以使用 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)

使用 insert 命令在表中插入记录。 查询语句如下 −

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)

相关文章