我有一个时间戳,来自:2021-12-20T18:00:55.126X
我想更改表格,只显示日期和时间,这样它就会变成类似于2021-12-20 18:00:55的内容;时间+X天。例如,添加5天,我希望它显示2021-12-25 18:00:55。对于这样的案件,有好的解决方案吗?
*我在Presto 工作
删除T和X,转换为时间戳并添加间隔5天:
select cast(regexp_replace('2021-12-20T18:00:55.126X','^(d{4}-d{2}-d{2})T(d{2}:d{2}:d{2}.d{3})X$','$1 $2') as timestamp) + interval '5' day
结果:
2021-12-25 18:00:55.126
如果你想把它作为没有毫秒的字符串,你可以格式化它:
select format_datetime(( cast(regexp_replace('2021-12-20T18:00:55.126X','^(d{4}-d{2}-d{2})T(d{2}:d{2}:d{2}.d{3})X$','$1 $2') as timestamp) + interval '5' day),'yyyy-MM-dd HH:mm:ss')
结果:
2021-12-25 18:00:55
您可以从字符串中删除X
,并使用from_iso8601_timestamp
解析时间戳:
select from_iso8601_timestamp(replace('2021-12-20T18:00:55.126X', 'X', ''))
要添加天数,可以使用interval
或date_add
:
select now() + interval '1' day, date_add('day', 1, now())