我的表中有 3 个字段:start_time: TIMESTAMP
、days_prior: INT
和time_open: TIME
。我想从中检索 start_time - days 的值,将结果的时间部分设置为00:00:00
,然后将时间添加到该值。
也就是说,原始时间戳可能类似于“2013-05-02 14:57:00”,天数为 1,时间为“09:30:00”,我想返回“2013-05-01 09:30” :00'。
我意识到这可以通过拆分时间戳的日期部分,然后将其与时间连接来完成。但是,如果我想在同一个查询中使用结果作为 where 语句的一部分,那么我也需要将连接的结果作为时间戳。
理想情况下,我的查询如下所示:
SELECT
t1.id,
t1.start_time,
CONCAT(DATE_SUB(DATE(t1.start_time), INTERVAL t2.days_prior DAY), ' ', t2.time_open)
FROM
t1, t2
WHERE
t1.t2_id = t2.id
但是,这会产生如下结果:
1, 2012-10-30 18:00:00, 323031322d31302d33302030393a30303a3030