簡體   English   中英

在 CASE 表達式 Oracle SQL 中將字符串轉換為日期

[英]Convert String to Date in CASE expression Oracle SQL

我正在使用以下CASE表達式,但我希望該字段是日期而不是字符串格式:

CASE WHEN TO_CHAR(DATE, 'MM/DD/YYYY') = '01/01/1800' THEN '01/01/2029'  
         ELSE TO_CHAR(DATE, 'MM/DD/YYYY')
     END as ENDDATE,

我嘗試在TO_CHAR之前添加TO_DATE( ,但我在Then部分不斷收到錯誤。有關如何成功將TO_DATE添加到此語句的任何指針?

您可以使用日期文字(始終為yyyy-mm-dd )並將其直接與您的date_column進行比較:

case when trunc(date_column) = date '1800-01-01' then date '2029-01-01'
     else date_column
end as enddate
select 
case when date_column=to_date('01/01/1800','dd/mm/yyyy') then to_date('01/01/2029','dd/mm/yyyy')
     else date_column end as enddate
from dual;

您只需要確保 case 語句的所有可能結果都屬於相同的數據類型。

暫無
暫無

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

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