在映射数据流中将字符串转换为 date 、 datetime 或 Int

Converting string to date , datetime or Int in Mapping dataflow

我有一个包含 start_dateend_date 列的镶木地板文件 格式如下

01-Jan-2021

我已经尝试了每个组合转换 toDate、toString、toInterger 函数,但在查看数据时我仍然返回 Null(见图)。

我希望以两种方式查看结果 YYYYMMDD 作为整数列和 YYYY-MM-DD 作为日期列。 例如 0101202101-01-2021

我确定是默认格式导致了这个问题。

谢谢

啊,你说 *"I would like to have see the result in two ways YYYYMMDD as integer column and YYYY-MM-DD as Date columns. eg 01012021 and 01-01-2021"* 你想要 YYYYMMDD 还是 dd-mm-yyy 因为你的例子在后来的格式。

无论如何,请看下面你可以使用的表达式:

我的来源:

使用派生列:

编辑表达式:

start_date_toInteger : toString(toDate(substring(start_date,1,11), 'dd-MMM-yyyy'), 'yyyymmdd')

start_date_toDate: toString(toDate(substring(start_date,1,11), 'dd-MMM-yyyy'), 'yyyy-mm-dd')

最终结果:

首先,对于日期格式化程序,您需要先告诉 ADF 您的字符串的每个部分代表什么。使用 dd-MMM-yyy 作为您的格式。然后,使用字符串格式化程序来操作输出:toString(toDate('01-Jan-2021', 'dd-MMM-yyyy'), 'yyyy-MM-dd')

对于整数表示:toInteger(toString(toDate('01-Jan-2021', 'dd-MMM-yyyy'), 'yyyyMMdd'))