gpt4 book ai didi

sql - SQL 日期时间对象中时区的正则表达式

转载 作者:行者123 更新时间:2023-11-29 13:12:31 24 4
gpt4 key购买 nike

我想将带有时区的日期时间对象存储为字符串。并确保它们的格式正确,我希望有一个正则表达式作为验证器。这是日期时间对象在 PostgreSQL 中的存储方式:

'2004-10-19 10:23:54+02'

非常不言自明。当然,时区部分是可选的,因此正则表达式模式也需要考虑到这一点。现在,我是这样做的:

/^\d\d\d\d-(0?[1-9]|1[0-2])-(0?[1-9]|[12][0-9 ]|3[01]) (00|[0-9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9]): ([0-9]|[0-5][0-9])*(:[0-9]*\+[0-9]*)?$/

我不完全确定这是正确的,尤其是时区部分。这会匹配所有可能存储在 PostgreSQL 数据库中的时区吗?感谢您的帮助。

编辑:我没有直接将它存储在 PostgreSQL 数据库中,所以我仍然需要正确使用正则表达式。

最佳答案

如果您持有字符串类型的值,您可以尝试将 substring() 函数作为选项:

select substring(str_date, 
'([0-9]{1,4}-[0-9]{1,2}-[0-9]{1,2} [0-9]{1,2}:[0-9]{1,2}:[0-9]{1,2}\+[0-9]{1,2})')
from tab;

Rextester Demo

关于sql - SQL 日期时间对象中时区的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53144339/

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