簡體   English   中英

為什么將日期轉換為_char() 放在案例中時會引發 ORA-01830 錯誤?

[英]Why does converting date to_char() throw ORA-01830 error when placed in a case-then?

我已經使用此代碼很長時間了,它工作正常:
to_char(v_emailRow.first_stamp, 'dd.mm.yyyy')

但是,今天我需要添加以下條件
case when v_cardCode = 'C1' then v_date else to_char(v_emailRow.first_stamp, 'dd.mm.yyyy') end

一旦我添加了 case-then 語句,每當需要執行 to_char() 時,它就開始總是拋出ORA-01830: date format picture ends before converting entire input string錯誤。 如果我刪除 case-then,它會像往常一樣工作,如果我將它添加回來,錯誤會立即返回。

我試過寫一個測試腳本,谷歌搜索,但我找不到問題。 兩種情況下都轉換了相同的值,為什么其中一種有效而另一種拋出錯誤?

當 v_cardCode = 'C1' 然后 v_date else to_char(v_emailRow.first_stamp, 'dd.mm.yyyy')

每當需要執行 to_char() 時,它總是開始拋出 ORA-01830: date format picture ends before conversion整個輸入字符串錯誤

v_date ,正如變量名所暗示的,它是一個DATE數據類型,而應用TO_CHAR將 date 轉換為一個STRING 因此,具有兩種不同的數據類型會導致錯誤。

在您的 SQL 中嘗試以下CASE

case 
  when v_cardCode = 'C1' 
  then to_char(v_date, 'dd.mm.yyyy')
  else to_char(v_emailRow.first_stamp, 'dd.mm.yyyy') 
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM