gpt4 book ai didi

sql - 如何处理 Oracle SQL 中的无效日期

转载 作者:行者123 更新时间:2023-12-05 08:47:02 27 4
gpt4 key购买 nike

有一栏显示一些交易的报表

例如:'date-05-03-2020-Tran-100002345-W.44321-CR-9999eu843'

我只从声明中取出了日期。在某些情况下,存在无效日期,例如 date-05-032-2020(月份中的三个数字而不是两个数字)

因此,当我执行查询时出现错误,因为我在使用 TO_DATE 函数将 varchar 从上一条语句中提取后转换为日期

所以我需要的是在 excel 表中但在 oracle SQL 中类似 IfError 的函数

例如:如果 DATE_x 无效则将其替换为 DATE_x2

with x as(
select TO_DATE('01/20/2021','DD-MM-YYYY') DATE_x,
TO_DATE('01/02/2021','DD-MM-YYYY') DATE_x2
from dual
)

select
DATE_x2
from x;

请指教

最佳答案

在 to_date 中有一个 default... on conversion error 参数:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/TO_DATE.html#GUID-D226FA7C-F7AD-41A0-BB1D-BD8EF9440118

因此您可以编写 TO_DATE('01/20/2021' default '01-01-2020' on conversion error, 'DD-MM-YYYY')TO_DATE(' 01/20/2021' 转换错误时默认为空,'DD-MM-YYYY')

还有validate_conversion函数:https://docs.oracle.com/en/database/oracle/oracle-database/12.2/sqlrf/VALIDATE_CONVERSION.html#GUID-DC485EEB-CB6D-42EF-97AA-4487884CB2CD

关于sql - 如何处理 Oracle SQL 中的无效日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68608012/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com