将时间戳转换为日期和时间



我有一个时间戳,来自: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', ''))

要添加天数,可以使用intervaldate_add:

select now() + interval '1' day, date_add('day', 1, now())

相关内容

  • 没有找到相关文章

最新更新