关于PGSQL的时间格式问题的报错总结

来源:互联网 发布:日本买什么划算 知乎 编辑:程序博客网 时间:2024/05/22 17:42


最近项目使用了PGSQL数据库,博主也是第一次使用,在实际开发中遇到了很多问题。

之所以写这篇博客,是因为遇到的问题找了很久都没找到相关的问题解决方案。


问题描述:

时间格式问题:

ERROR:  hour "0" is invalid for the 12-hour clock
HINT:  Use the 24-hour clock, or give an hour between 1 and 12.

这个错误很明显,翻译工具很多,我直接复制粘贴,百度就给出了翻译结果。

原sql如下:

select to_date ('2012-08-20 00','yyyy-mm-dd hh')


其实就是想把一个时间格式的字符串转为datetime格式。

问题就出在这里,博主按照常用的mysql和orcl数据库的写法去写sql,没有遵循pgsql的规定语法去写。



这是找到了pgsql的官网文档发现的。也就是说,如果传入的字符串在小时位置不在01-12之间的话,那么就会出现上面那个错误,博主按照以上截图里面的格式去处理,并且换了一个函数,to_timestamp,成功将对应的字符串转成了想要的结果。

select to_timestamp ('2012-08-20 00','yyyy-mm-dd hh24')

截图如下:

这个带了时区的,pgsql的to_timestamp函数返回结果就会在后面附加时区,到影响不大,认识到这个问题之后,项目中的报错已经完全解决。


如果你有类似的问题,可以一起交流,讨论。谢谢各位

阅读全文
0 0