将字符串转换为日期不会以特定格式返回日期
问题描述:
我正在使用Oracle。正如你可以从标题明白,问题是在此代码:将字符串转换为日期不会以特定格式返回日期
select TO_DATE('21991231', 'YYYYMMDD') from dual;
,其结果是:
31/12/2199
我想要实现这样的结果:为什么
21991231
甲骨文这样做?如何逃避这个问题?
答
该日期在Oracle中没有格式。这是你的客户。 如果要修改当前会话的默认格式,您可以使用:
alter session set nls_date_format='yyyymmdd'
如果你想将日期转换为临时基础上的格式,你可以使用TO_CHAR与格式字符串:
select to_char(date_col, 'yyyymmdd') from table;
您需要使用'TO_CHAR(date,'YYYYMMDD');' –
@Asjon,这不是['to_date'](http://docs.oracle.com/database/121/SQLRF/functions219 .htm)。 –
如果它已经是你想要的格式,你为什么要转换它?你必须将你的字符串转换为一个日期(没有内部格式!),然后返回到你想要的格式的字符串,这似乎有点无意义? –