2017-08-14 151 views
1

目前我有时间戳现在这显示一列: 周二,2016年8月2日下午1:00PostgreSQL的时间戳

这些标记不限于1个日期,但它显示了不同日期用不同的时间。我想要做的是编辑这些时间戳,如果显示的时间超过当天下午10点20分,我想将时间部分更改为下午10点20分。

例如: 8月2日星期二2016 23时21 PM 变化周二年,2016年8月2日22时20 PM 星期二2016年8月3日下午1时没有变化

从本质上讲,任何超过22点20为天修改为22:20,而以前的任何内容都将保持原样。

+0

看看手册的这一部分:https://www.postgresql.org/docs/9.6/static/functions-datetime.html#FUNCTIONS-DATETIME-EXTRACT的好消息有很多操作上日期。基本上提取时间分量并将其与22:20进行比较,如果结束时间为22:20,则创建一个新日期,并将其添加到提取日期。 –

回答

0
update table1 
    set ts = date_trunc('day', ts) + '22:20:00'::interval 
    where ts - date_trunc('day', ts) > '22:20:00'::interval