继续获取用于转换为日期的 informatica 函数错误无效字符串

Keep getting informatica function error invalid string for converting to Date

我正在尝试将 nvarchar 转换为日期,但我一直收到以下错误

TT_11132 转换 [Expression] 计算输出列 [Run_Date1] 时出错。错误消息是 [<> [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')

请帮忙

谢谢

只用 TO_DATE(RUN_DATE, 'YYYYMMDD')

替换所有内容

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_DATEYYYYMMDD 格式,那么您需要做的就是 TO_DATE(RUN_DATE, 'YYYYMMDD')。如果 RUN_DATE 使用了其他格式,只需相应地替换第二个参数即可。