ERROR: invalid value "" for "yyyy"
错误信息
invalid value "" for "yyyy" (seg0 slice1 10.157.3.15:6000 pid=40808)
DETAIL: Value must be an integer.
环境背景
在进行存储过程插入表数据的时候,在进行字符串转日期格式的时候,插入目标表字段要求是date类型,但是原表是字符串类型,并且这个字段在原表中还存在数据是空字符串的,有长度是空,出现了以上问题,
再直接说就是select to_date(' ','yyyy-MM-dd')这样写就会报错,说明你的数据里面这个字段有为一个空格的数据。可以查询出来看看。
sql:TO_DATE( SUBSTRING ( 'date', 1, 10 ), 'yyyy-mm-dd' ) makedate
原表 date字段是 这样的格式 2021-05-11 10:00:01,这里可以不用截取,因为在pg数据库中只会保存yyyy-mm-dd 格式的,会自动截取。
如果date字段是空的话,就会报以上错误,
解决方式:判断一下,如果是空的字符串(有长度),需要使用trim()方法。不等于空的时候才进行插入,否则目标表就会自动赋值null,
方式:case when trim(date) != '' then to_date(SUBSTRING (date, 1, 10),'yyyy-MM-dd') end makedate
这样就不报错了。
在补充一下,在pg数据库中使用to_date(),它是只保存yyyy-mm-dd 格式的,注意一下。date_format函数在pg数据库怎么替换(pg数据库格式化日期)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-12-29 gp数据库---子查询报错 correlated subquery with skip-level correlations is not supported
2021-12-29 关于No operator matches the given name and argument type(s).问题的解决方案
2021-12-29 Spring注解@SessionAttribute
2021-12-29 Spring注解@ModelAttribute
2021-12-29 关于使用postman时遇到的一点小问题
2021-12-29 Spring注解@Valid注解是什么
2021-12-29 BeanUtils.copyProperties的用法