2015-12-03 65 views
0

我需要依賴於其他兩列數據的日期(date1date2)更新column8 - 如果date1晚於date2然後column8YES否則其NO使用大小寫表達式更新表格列日期?

我寫了這個:

update table1 
set delay = case when date1 > date2 then 'YES' 
       when date2 is NULL then 'YES' 
       else 'NO' 
      end 

的問題是,它可能不是比較日期,但表達的長度,因爲我沒有在每列除空列...它告訴我,它可能不知道我想要它作爲日期進行比較但數據庫中的列使用日期格式YYYY-MM-DD

有什麼方法可以更新我的代碼或添加一些東西來比較日期而不是字符串長度嗎?

謝謝!

+0

不明白。你能編輯你的問題,並添加輸入數據和錯誤的結果嗎? –

+0

date1和date2列的數據類型? – jarlh

+1

根據其他列存儲計算值通常是一個糟糕的主意。 (數據冗餘,數據不一致的風險。)改爲創建一個視圖。或者使用觸發器進行管理。) – jarlh

回答

0

您可以嘗試CAST功能:

WHEN CAST(date1 AS DATE) > CAST(date2 AS DATE) 
+0

不回收抱歉,它只是幫助我的錯誤,謝謝 –