最近项目使用了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函数返回结果就会在后面附加时区,到影响不大,认识到这个问题之后,项目中的报错已经完全解决。
如果你有类似的问题,可以一起交流,讨论。谢谢各位