SQL Server 2008、Visual Studio 2008 を使用。
データを文字列列から派生日付列に変換しようとしています。文字列は、"dd/mm/yy" (20 世紀を想定) または "dd/mm/yyyy" の 2 つの形式で指定できます。例: "02/05/12"、"23/12/02"、"13/08/2012"。
そこで、派生列に対して次のような式を試しました。
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」形式でのみ機能します。
私は何を間違っていますか?ありがとう。