不断收到Informatica函数错误的无效字符串以转换为Date

时间:2019-03-06 17:43:53

标签: function datetime informatica to-date to-char

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

TT_11132转换[表达式]评估输出列[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),'mmddyyyyy'),'mm / dd / yyyy')

请帮助

谢谢

2 个答案:

答案 0 :(得分: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_DATEYYYYMMDD格式,那么您只需要做TO_DATE(RUN_DATE, 'YYYYMMDD')。如果RUN_DATE使用了另一种formati,只需相应地替换第二个参数。

答案 1 :(得分:0)

仅用TO_DATE(RUN_DATE, 'YYYYMMDD')

替换所有内容