【问题标题】:Converting string into date does not return the date in specific format [duplicate]将字符串转换为日期不会以特定格式返回日期[重复]
【发布时间】:2017-05-08 20:37:50
【问题描述】:

我正在研究甲骨文。从标题可以理解,问题出在这段代码中:

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

结果是:

31/12/2199

我想达到这个结果:

21991231

甲骨文为什么要这样做?怎样才能摆脱这个问题?

【问题讨论】:

  • 你需要使用TO_CHAR (date, 'YYYYMMDD') from dual;
  • @Asjon,这不是to_date 所做的。
  • 如果它已经是你想要的格式,你为什么还要转换它?您必须将字符串转换为日期(没有固有格式!),然后再转换回您想要的格式的字符串,这似乎有点毫无意义?

标签: sql oracle


【解决方案1】:

日期在 Oracle 中没有格式。是你的客户。 如果要在当前会话中修改默认格式,可以使用:

alter session set nls_date_format='yyyymmdd'

如果您想将日期转换为临时格式,您可以使用带有格式字符串的 to_char:

select to_char(date_col, 'yyyymmdd') from table;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-30
    • 1970-01-01
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    相关资源
    最近更新 更多