低级错误真的浪费时间且菜,希望不再犯低级重复错误。
SQL语句:
SELECT job_date FROM data_check
WHERE data_type = 'S';
查询结果:
job_date |
----------+
2023-01-28|
我希望用update语句更新job_date字段,但出现报错,就用SELECT语句查看问题。
我的SQL:
SELECT to_date('20230127','yyyy-mm-dd hh24:mi:ss') FROM data_check
WHERE data_type = 'S' ;
报错信息:
SQL 错误 [22008]: ERROR: date out of range: "20230127"
为什么报错?
在 PostgreSQL 中,to_date
函数用于将字符串转换为日期,"20230127" 不是有效的日期格式,因此导致了日期超出范围的错误。
在我的 SQL 查询中,to_date('20230127','yyyy-mm-dd hh24:mi:ss')
的日期格式为 'yyyy-mm-dd hh24:mi:ss',但是输入的字符串 "20230127" 并不符合该格式,因此 PostgreSQL 无法正确解析。
使用to_date函数时,转换格式需要和日期本来的格式相匹配
正确的SQL:
SELECT to_date('20230127', 'YYYYMMDD');