在时间戳MYSQL中添加日期

时间:2017-03-22 05:05:10

标签: mysql date timestamp

在时间戳中添加日期

我想在查询

下面运行
UPDATE table
SET columnA = '2017-03-21 23:57:19'
WHERE .....

但是,我想通过在23:57:19小时取任何昨天的日期来构建时间戳。

columnA的数据类型为timestamp2017-03-21是昨天的日期。我应该使用subdate(CURDATE(),1)吗?

UPDATE table
SET columnA = 'subdate(CURDATE(),1) 23:57:19' WHERE .....  ?

或者我有另一种方法可以做到这一点?

1 个答案:

答案 0 :(得分:2)

使用DATE_SUB()

UPDATE table
SET columnA = DATE_SUB('2017-03-22 23:57:19', INTERVAL 1 DAY)

UPDATE table
SET columnA = DATE_SUB(NOW(), INTERVAL 1 DAY)

如果你想昨天到23:57:19,那就试试这个:

DATE_ADD(TIMESTAMP(DATE_SUB(CURDATE(), INTERVAL 1 DAY)), INTERVAL '23:57:19' HOUR_SECOND)

DATE_SUB(CURDATE(), INTERVAL 1 DAY) - yesterday's date
TIMESTAMP(...)                      - resets yesterday to midnight
DATE_ADD(..., INTERVAL '23:57:19')  - adds 23:57:19 to yesterday from midnight

Demo