gpt4 book ai didi

sql - 带额外时间的字符串到日期的转换

转载 作者:行者123 更新时间:2023-11-29 12:37:10 26 4
gpt4 key购买 nike

具有以下示例字符串:

'2015-01-01 23:51:00 AD'
'2015-01-01 24:51:00 AD'
'2015-01-01 26:51:00 AD'
'2015-01-01 27:51:00 AD'

有什么方法(通过运行 SQL 查询)可以更改小时吗?如果高于 24 做 hour - 24

所以结果行是:

'2015-01-01 23:51:00 AD'
'2015-01-01 00:51:00 AD'
'2015-01-01 02:51:00 AD'
'2015-01-01 03:51:00 AD'

最佳答案

It's not a date. It's a timestamp.

(许多)一种方式:

SELECT overlay(string
placing to_char(substring(string, 12, 2)::int % 24, '00')
from 12 for 2);

然后你可以转换:(expression)::timestamp 或使用 to_timestamp()

String functions in the manual.
% is the modulo operator.

或者可能更快(丢弃纪元指示符 AD):

SELECT left(string, 10)::date + substring(string, 12, 8)::interval::time

interval 允许任意小时数。当转换回 time 时,您会根据需要获得调整后的 24 小时制。您可以简单地添加 datetime 以在 Postgres 中生成 timestamp

SQL Fiddle.

关于sql - 带额外时间的字符串到日期的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29929276/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com