SQL Server 2016
SQL Server Management Studio 上看到
SELECT CASE YEAR([MyDate]) WHEN '1900' THEN '' ELSE [MyDate] END AS [MyDate], CASE YEAR([MyDate]) WHEN 1900 THEN 'x' ELSE CONVERT(VARCHAR, [MyDate],111) END AS [MyDate], CASE YEAR([MyDate]) WHEN 1900 THEN 'x' ELSE [MyDate] END AS [MyDate], CASE YEAR([MyDate]) WHEN 1900 THEN '9999' ELSE [MyDate] END AS [MyDate], CASE YEAR([MyDate]) WHEN 1900 THEN '1' ELSE [MyDate] END AS [MyDate], CASE YEAR([MyDate]) WHEN 1900 THEN 'x' ELSE 'y' END AS [MyDate], CASE CONVERT(CHAR(4), [MyDate],111) WHEN '1900' THEN '' ELSE [MyDate] END AS [MyDate] FROM [JiguanAuditContext] |
那幾行出問題?
出問題在
第一行黃色,因為 x 是字串格式,MyDate 是日期格式,而且 x 無法轉換成日期格式。
第二行黃色,因為 '1' 是字串格式,MyDate 是日期格式,而且 x 無法轉換成日期格式。
其他都正常。
紫色這行,字串 '9999' 可以轉換成日期 '9999-01-01 00:00:00.000' ,所以不會出錯。(但
'1' 不能轉)
綠色這行,字串 'x' 和 'y' 都是字串。
淡藍這行,字串 '' 會用該欄位設定的預設值 。
(待續)
沒有留言:
張貼留言