[英]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 ;
有人可以幫忙嗎?
這是關於您使用的格式掩碼以及RRRR
和YYYY
之間的區別。 看看下面的例子:
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.