簡體   English   中英

Oracle PlSql中的日期格式

[英]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.

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