【问题标题】:Add date in timestamp MYSQL在时间戳MYSQL中添加日期
【发布时间】:2017-03-22 05:05:09
【问题描述】:

在时间戳中添加日期

我想在查询下运行

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 .....  ?

或者我有其他方法可以做到这一点?

【问题讨论】:

    标签: mysql date timestamp


    【解决方案1】:

    使用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

    【讨论】:

    • @GurV 是的,肯定有DATE_SUB(),查看文档:-)
    • 23:57:19 怎么样?
    • 假设今天是2017-03-24,我想设置为2017-03-23,我该如何使用第一个选项,因为它并不总是2017-03-22
    • 据我所知,我已满足您的要求。
    • DATE_SUB(NOW(), INTERVAL 1 DAY) 给出昨天的日期
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    相关资源
    最近更新 更多