不断收到用于转换为日期的 informatica 函数错误无效字符串
Posted
技术标签:
【中文标题】不断收到用于转换为日期的 informatica 函数错误无效字符串【英文标题】:Keep getting informatica function error invalid string for converting to Date 【发布时间】:2019-03-06 17:43:53 【问题描述】:我正在尝试将 nvarchar 转换为日期,但我在下方不断收到此错误
TT_11132 转换 [Expression] 在评估输出列 [Run_Date1] 时出错。错误消息是 [ [TO_DATE]: invalid string for conversion to Date ... t:TO_DATE(u:'20190304',u:'MM/DD/YYYY HH24:MI:SS')]。
但我的函数不包含“MM/DD/YYYY HH24:MI:SS”。这是我的功能供参考。
TO_DATE(TO_CHAR(to_date(RUN_DATE),'mmddyyyy'),'mm/dd/yyyy')
请帮忙
谢谢
【问题讨论】:
【参考方案1】:Samik 是对的,只需使用 TO_DATE(RUN_DATE, 'YYYYMMDD')
我想补充的是您的函数错误的一些解释。所以从最里面剥离它:
to_date(RUN_DATE)
将 RUN_DATE 字符串转换为 DATE
尝试猜测尚未给出的格式。我们将其结果称为NewDate
并进一步分析:
TO_CHAR(NewDate,'mmddyyyy')
现在这会将NewDate
转换为mmddyyyy
格式的字符串。让我们将其称为NewString_MMDDYYYY
,看看它会把我们带到哪里。这使得最终函数为:
TO_DATE(NewString_MMDDYYYY,'mm/dd/yyyy')
看到错误了吗?您告诉 Informatica 将 NewString_MMDDYYYY
转换为日期。然后你告诉函数它是以mm/dd/yyyy
格式编写的——这显然没有被使用,因为 TO_CHAR 函数被告知将它存储在mmddyyyy
中。
所以,如果您的输入 RUN_DATE
是 YYYYMMDD
格式,那么您需要做的就是 TO_DATE(RUN_DATE, 'YYYYMMDD')
。如果RUN_DATE
使用了另一种格式,只需相应地替换第二个参数即可。
【讨论】:
感谢您的解释,这将有助于我进一步使用此功能。【参考方案2】:用TO_DATE(RUN_DATE, 'YYYYMMDD')
替换所有内容
【讨论】:
以上是关于不断收到用于转换为日期的 informatica 函数错误无效字符串的主要内容,如果未能解决你的问题,请参考以下文章