MySql,将日期和时间列组合成时间戳

Posted

技术标签:

【中文标题】MySql,将日期和时间列组合成时间戳【英文标题】:MySql, combining date and time column into a time stamp 【发布时间】:2011-05-06 18:30:56 【问题描述】:

我猜这相对简单,但我不确定语法。我有要合并到时间戳列的日期和时间列。我将如何使用 select 查询这个?

【问题讨论】:

【参考方案1】:

concat('2021-12-31', ' ', '07:00:00')

它在 INSERT 过程中工作。

【讨论】:

这没有提供问题的答案。一旦你有足够的reputation,你就可以comment on any post;相反,provide answers that don't require clarification from the asker。 - From Review【参考方案2】:

或者您可以使用内置的TIMESTAMP(date,time) 函数。

那么你会从 Orders 表中执行类似的操作...

SELECT OrderNumber, TIMESTAMP(date,time) as OrderTS, SalesPersonID
FROM Orders

【讨论】:

这个备受赞誉的答案看起来更像是一条评论。如果您打算保留这篇文章作为答案,请花时间加强它,使其不仅仅是一个仅链接的答案。【参考方案3】:

mysql 似乎没有 datetime('2017-10-26', '09:28:00') 这样的 datetime 构造函数。因此,您必须将组件部分视为字符串并使用字符串连接功能(注意 mysql 没有用于字符串连接的 || 运算符)。如果您想要 datetime 类型,则必须强制转换它。

concat(datefield,' ',timefield) as date

select cast(concat('2017-10-26', ' ', '09:28:00') as datetime) as dt;

【讨论】:

我需要在今天日期的约束中使用它,这成功了select * from my_table where my_date = cast(concat(CURDATE(), ' ', '13:00:00') as datetime)【参考方案4】:

O.P.确实说过SELECT,但如果有人想添加时间戳列

ALTER TABLE `t` ADD COLUMN `stamp` TIMESTAMP;
UPDATE `t` SET `stamp` = STR_TO_DATE(CONCAT(`Date`, ' ', `Time`), '%m/%d/%Y %H:%i:%s');

根据口味调整format strings。

【讨论】:

【参考方案5】:
SELECT * FROM tablename WHERE TIMESTAMP(datecol, timecol) > '2015-01-01 12:00:00';

【讨论】:

【参考方案6】:

24小时制

TIMESTAMP(Date, STR_TO_DATE(Time, '%h:%i %p'))

【讨论】:

【参考方案7】:

如果可以使用内置函数,就使用它。 这里的任何方式都是在给定时间戳之间查找记录的示例。

SELECT `id` FROM `ar_time` WHERE TIMESTAMP(`cdate`,`ctime`) BETWEEN fromTimeStamp AND nowTimeStamp;

【讨论】:

以上是关于MySql,将日期和时间列组合成时间戳的主要内容,如果未能解决你的问题,请参考以下文章

单独的日期字符串和时间字符串组合成一个解析日期时间戳

如何在 db2 中将日期和时间组合成时间戳?

将mysql时间戳转换为实际日期和时间?

急!将mysql中日期转化为时间戳

在 Java 中处理 MySQL 日期时间和时间戳

mysql查询时间戳和日期的转换