如何更新postgres中时间戳字段的一部分?

Ngu*_*ắng 4 sql postgresql timestamp sql-update

示例:我的时间戳:2018-01-01 00:00:00.000在表temp和field temp_date中.我想通过SQL更新2018年到2016年.我怎么能够 ?

Pat*_*ick 6

UPDATE temp
SET temp_date = temp_date - interval '2 years'
WHERE EXTRACT (YEAR FROM temp_date) = 2018;
Run Code Online (Sandbox Code Playgroud)

如果您想将其设置为确切的年份,例如,如果您的WHERE条款使用的不是年份,或者您根本没有使用WHERE条款:

UPDATE temp
SET temp_date = temp_date +
    (2016 - EXTRACT(YEAR FROM temp_date) || ' years')::interval
WHERE foo = 'bar';
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息,请参阅邮件列表.