Azure Datafactory映射数据流无法将datetime格式化为yyyy/MM/dd

Azure Datafactory映射数据流无法将datetime格式化为yyyy/MM/dd,azure,datetime,azure-data-factory,azure-data-factory-2,azure-data-flow,Azure,Datetime,Azure Data Factory,Azure Data Factory 2,Azure Data Flow,我正在尝试将映射数据流中的日期从“2019-12-12”转换为“2019/12/12”。 但是我找不到可以转换成这种格式的数据流表达式 我想要一个类似于formatDateTime的函数,它在datafactory表达式中可用,而在dataflow表达式中不可用 coalesce(toDate(YourDate,'MM/dd/yyyy'),toDate(YourDate,'yyyy/MM/dd'),toDate(YourDate,'dd/MM/yyyy'),toDate(YourDate,'M

我正在尝试将映射数据流中的日期从“2019-12-12”转换为“2019/12/12”。 但是我找不到可以转换成这种格式的数据流表达式

我想要一个类似于formatDateTime的函数,它在datafactory表达式中可用,而在dataflow表达式中不可用

 coalesce(toDate(YourDate,'MM/dd/yyyy'),toDate(YourDate,'yyyy/MM/dd'),toDate(YourDate,'dd/MM/yyyy'),toDate(YourDate,'MMddyyyy'),toDate(YourDate,'yyyyddMM'),toDate(YourDate,'MMddyyyy'),toDate(YourDate,'yyyyMMdd'))
已尝试toDate->不接受yyyy/MM/dd

已尝试使用时间戳->不使用yyyy/MM/dd


您可以使用以下表达式:

toString(toDate('2019-12-12'), 'yyyy/MM/dd')
结果:


希望这有帮助

您可以使用以下表达式:

toString(toDate('2019-12-12'), 'yyyy/MM/dd')
结果:


希望这有助于

您的第一次转换结果是没有格式的时间戳。要以所需格式输出,请使用下面的命令,该命令使用附加的toString将代码包装为所需格式

toString(toTimestamp(toString(byName('PostedTransactionDate')), 'yyyy-MM-dd') , 'yyyy/MM/dd')

第一次转换会产生一个没有格式的时间戳。要以所需格式输出,请使用下面的命令,该命令使用附加的toString将代码包装为所需格式

toString(toTimestamp(toString(byName('PostedTransactionDate')), 'yyyy-MM-dd') , 'yyyy/MM/dd')

我使用这种方法来获取日期列格式,使用派生列并使用此表达式

 coalesce(toDate(YourDate,'MM/dd/yyyy'),toDate(YourDate,'yyyy/MM/dd'),toDate(YourDate,'dd/MM/yyyy'),toDate(YourDate,'MMddyyyy'),toDate(YourDate,'yyyyddMM'),toDate(YourDate,'MMddyyyy'),toDate(YourDate,'yyyyMMdd'))

我希望它也适用于您,干杯

我使用这种方法获取日期列格式,使用派生列并使用此表达式

 coalesce(toDate(YourDate,'MM/dd/yyyy'),toDate(YourDate,'yyyy/MM/dd'),toDate(YourDate,'dd/MM/yyyy'),toDate(YourDate,'MMddyyyy'),toDate(YourDate,'yyyyddMM'),toDate(YourDate,'MMddyyyy'),toDate(YourDate,'yyyyMMdd'))


我希望它也适用于您,干杯

如果我输入正确,您可以尝试在第一个toString周围添加另一个toString,例如toString otimes TampToString'PostedTransactionDate','yyyy MM dd','yyyy/MM/dd'。如果这样做有效,根据PostedTransactionDate的类型,您可能只需将“PostedTransactionDate”、“yyyy/MM/dd”字符串化,并避免来回转换。如果要将“2019-12-12”格式转换为“yyyy/MM/dd”,请告诉我们哪个是“MM”,第一个“12”还是最后一个?嘿@scott,您的第一个表达式很好,但第二个对我来说不起作用。不过,感谢您的建议:@chethan_raju将我的解决方案作为答案供您接受。如果我输入正确,您能否尝试在第一个toString周围添加另一个toString,例如toString otimesTampToString'PostedTransactionDate'、'yyyy MM dd'、'yyyy/MM/dd'。如果这样做有效,根据PostedTransactionDate的类型,您可能只需将“PostedTransactionDate”、“yyyy/MM/dd”字符串化,并避免来回转换。如果要将“2019-12-12”格式转换为“yyyy/MM/dd”,请告诉我们哪个是“MM”,第一个“12”还是最后一个?嘿@scott,您的第一个表达式很好,但第二个对我来说不起作用。谢谢你的建议:@chethan_raju将我的解决方案作为答案让你接受。嘿@Leon,我尝试了你的表达,当我明确给出日期时它有效,但当我替换为列名时它不起作用。toStringtoDatetoStringbyName'PostedTransactions','yyyy/MM/dd'@chethan_raju为什么要添加到列名中?那是错误的。您可以尝试使用字符串todatePostedTransactions“yyyy/MM/dd”或字符串todateToStringByNamePostedTransactions“yyy/MM/dd”。嘿@leon,我使用参数代替PostedTransactions,因为这会对不同的表进行更改。由于参数的类型为字符串,所以应该用引号括起来。@chethan_raju如果使用“PostedTransactions”,表达式将无法获取值。它将被视为一根单弦。你能理解吗?,byName函数似乎起到了作用,我试过使用ToString byName'PostedTransactions'并得到了行值而不是字符串。嘿@Leon,我试过你的表达式,它在我显式给出日期时有效,但在我替换为列名时无效。toStringtoDatetoStringbyName'PostedTransactions','yyyy/MM/dd'@chethan_raju为什么要添加到列名中?那是错误的。您可以尝试使用字符串todatePostedTransactions“yyyy/MM/dd”或字符串todateToStringByNamePostedTransactions“yyy/MM/dd”。嘿@leon,我使用参数代替PostedTransactions,因为这会对不同的表进行更改。由于参数的类型为字符串,所以应该用引号括起来。@chethan_raju如果使用“PostedTransactions”,表达式将无法获取值。它将被视为一根单弦。你能理解吗?byName函数似乎就是为了达到这个目的,我试着使用toStringbyName'PostedTransactions',得到的是行值,而不是字符串。