使用 SQL Server 2008、Visual Studio 2008。
尝试将数据从字符串列转换为派生日期列。该字符串可以有两种格式,一种是:“dd/mm/yy”(可以假定为 20 世纪),或者是“dd/mm/yyyy”。例如“02/05/12”、“23/12/02”、“13/08/2012”。
所以我为 Derived 列尝试了这样的表达式:
DateReceived == "" ? NULL(DT_DATE) : (DT_DATE)((LEN(RTRIM(DT_DATE)) == 10 ? SUBSTRING(DateReceived,7,4) : ("20" + SUBSTRING(DateReceived,7,2))) + "-" + SUBSTRING(DateReceived,4,2) + "-" + SUBSTRING(DateReceived,1,2))
但 Visual Studio 给出错误:“表达式无效,或者存在内存不足错误”。
它接受一个更简单的表达式,如:
DateReceived == "" ? NULL(DT_DATE) : (DT_DATE)("20" + SUBSTRING(DateReceived,7,2) + "-" + SUBSTRING(DateReceived,4,2) + "-" + SUBSTRING(DateReceived,1,2))
但此表达式仅适用于“dd/mm/yy”格式。
我究竟做错了什么 ?谢谢。