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,将日期和时间列组合成时间戳的主要内容,如果未能解决你的问题,请参考以下文章