簡體   English   中英

Oracle 數據庫返回日期為 1951 而不是 2051

[英]Oracle database is returning date as 1951 instead of 2051

嗨,我正在使用輸入字段在 UI 中輸入日期並輸入為02/01/2051 它將作為01-FEB-51保存到數據庫中,我使用DATE作為數據類型。 當我獲取它時,它返回為01-feb-1951 下面是我正在使用的查詢

select to_date(LN_MAT_DT,'dd/mm/YYYY') from Emp ; 

有人可以幫忙嗎?

這是關於您使用的格式掩碼以及RRRRYYYY之間的區別。 看看下面的例子:

SQL> select to_date('01.02.51', 'dd.mm.yy') date_yy,
  2         to_date('01.02.51', 'dd.mm.rr') date_rr,
  3         --
  4         to_date('01.02.1951', 'dd.mm.yyyy') date_19_yyyy,
  5         to_date('01.02.1951', 'dd.mm.rrrr') date_19_rrrr,
  6         --
  7         to_date('01.02.2051', 'dd.mm.yyyy') date_20_yyyy,
  8         to_date('01.02.2051', 'dd.mm.rrrr') date_20_rrrr
  9  from dual;

DATE_YY    DATE_RR    DATE_19_YY DATE_19_RR DATE_20_YY DATE_20_RR
---------- ---------- ---------- ---------- ---------- ----------
01.02.2051 01.02.1951 01.02.1951 01.02.1951 01.02.2051 01.02.2051

SQL>

您應該做的是使用帶有YYYY格式掩碼的 4 位數年份。

因為 LN_MAT_DT 是 DATE 數據類型,你需要 to_char,而不是 to_date,即:

select to_char(LN_MAT_DT,'dd/mm/YYYY') from Emp ; 

暫無
暫無

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

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