继续获取Informatica函数错误无效的字符串,以转换为日期



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

tt_11132转换[表达式]有一个错误评估输出列[run_date1]。错误消息是[<> [to_date]:用于转换为日期的无效字符串... t:to_date(u: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')

请帮助

谢谢

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使用另一种格式,只需相应地替换第二个参数。

TO_DATE(RUN_DATE, 'YYYYMMDD')

替换所有内容

最新更新