2017-05-08 93 views
0

我正在使用Oracle。正如你可以從標題明白,問題是在此代碼:將字符串轉換爲日期不會以特定格式返回日期

select TO_DATE('21991231', 'YYYYMMDD') from dual; 

,其結果是:

31/12/2199 

我想要實現這樣的結果:爲什麼

21991231 

甲骨文這樣做?如何逃避這個問題?

+2

您需要使用'TO_CHAR(date,'YYYYMMDD');' –

+0

@Asjon,這不是['to_date'](http://docs.oracle.com/database/121/SQLRF/functions219 .htm)。 –

+3

如果它已經是你想要的格式,你爲什麼要轉換它?你必須將你的字符串轉換爲一個日期(沒有內部格式!),然後返回到你想要的格式的字符串,這似乎有點無意義? –

回答

0

該日期在Oracle中沒有格式。這是你的客戶。 如果要修改當前會話的默認格式,您可以使用:

alter session set nls_date_format='yyyymmdd' 

如果你想將日期轉換爲臨時基礎上的格式,你可以使用TO_CHAR與格式字符串:

select to_char(date_col, 'yyyymmdd') from table; 
相關問題