[英]Date Format in Oracle PlSql
這是現有代碼,有人可以解釋嗎?
var_l_year_days := to_number(to_char(to_date(to_char(to_date
(ADD_MONTHS(var_l_mnth_details(i) .var_l_mnth_start_date, 12),
'DD-MM-YYYY'),'YYYY') ||'1231','YYYYMMDD'),'DDD'));
截止日期(ADD_MONTHS(var_l_mnth_details(i).var_l_mnth_start_date,12),'DD-MM-YYYY')
這是您代碼中的錯誤。 切勿在DATE申請TO_DATE 。 它迫使Oracle:
基於特定於語言環境的NLS設置 。 您需要TO_DATE將文字轉換為日期。 對於date-arithmetic ,請保留原樣的日期。
采用:
TO_CHAR
以所需的格式顯示日期 TO_DATE
將文字轉換為日期。 您可以通過以下方式簡化查詢:
SQL> SELECT add_months(TRUNC(SYSDATE,'year'), 24)
2 - add_months(TRUNC(SYSDATE,'year'), 12) days_in_next_year
3 FROM dual;
DAYS_IN_NEXT_YEAR
-----------------
366
對我來說,似乎返回var_l_mnth_details(i).var_l_mnth_start_date
旁邊的天數。 基本上找出明年是否是the年。
雖然可以簡化為:
var_l_year_days := TO_NUMBER(TO_CHAR(TRUNC(ADD_MONTHS(var_l_mnth_details(i).var_l_mnth_start_date, 24), 'YEAR') - 1, 'DDD'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.