出现:ORA-01830日期格式图片在转换整个输入字符串之前结束的报错该怎么办

先说答案

如果知道日期格式类型直接用to_date转换,但要注意to_date函数使用时必须要与存储的数据格式一致

比如他是yyyy/MM/dd hh:mi:ss那你就不能变成yyyy/MM/dd,不然会报标题所说的错误,如果你只是想要到日层次的转换,可以先截取数据,再用to_date函数

to_char(to_date(substr(a.startdate,1,10),'yyyy/MM/dd'),'yyyy/MM/dd)>'2023/01/01'


在项目中接手他人创建的数据表里出现时间字段是varchar类型,该如何解决日期比较这个问题呢?

首先,我先祝福创建这张表的人一胎生八个,时间字段整个varchar类型

43fc852948a4487b96ebbbd3356256ec.jpg

 然后因为要计算这张表中在某个时间段中的datacount数据处理条数的总数,因为一开始不知道他设置的是varchar类型,所以觉得很简单,一个to_char函数不就搞定了,然后

bc4dc82ff8f748169267a5e28612f27e.jpg

 好家伙,此时的我已经发觉了事情不太简单,于是想着用to_date函数给它抢救一下,成功后在给它夹一个to_char函数,在进行日期比较

e5118b5d992e40249249748ff38d2211.jpg

 然后换了个报错,上网搜索之后,发现是说要与数据类型一致,我就去看数据存储的是什么格式 2019/02/10 14:25:504 这种格式我搜了半天没找到于是用 yyyy/MM/dd hh24:mi:ss格式去试试,果不其然的还是报这个错误。

于是就想到是不是可以先截取它的前面日期再给它变成我需要的日期格式,因为我进行日期比较的话也就是到日的层次

63e48c7bf9ad4dca954e8339a46b1d48.jpg

 substr(字段,开始位置,结束位置,可不填)

to_char(to_date(substr(a.startdate,1,10),'yyyy/MM/dd'),'yyyy/MM/dd)>'2023/01/01'

这次终于成功了

觉得有用的留下你的赞,万分感谢

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

—熙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值