【发布时间】:2018-02-06 22:55:12
【问题描述】:
我想从 oracle 数据库中选择一个日期字段,使用
select to_date(trndt, 'yyyymmdd') from cf20gldt,但系统显示错误。
【问题讨论】:
-
to_date()将字符串转换为日期。您正在寻找to_char(),它将日期转换为指定格式的字符串(顺便说一句:总是包括实际的错误消息,我们无法从这里看到您的屏幕)
我想从 oracle 数据库中选择一个日期字段,使用
select to_date(trndt, 'yyyymmdd') from cf20gldt,但系统显示错误。
【问题讨论】:
to_date() 将字符串转换为日期。您正在寻找to_char(),它将日期转换为指定格式的字符串(顺便说一句:总是包括实际的错误消息,我们无法从这里看到您的屏幕)
改成to_char
SELECT TO_CHAR(trndt, 'yyyymmdd') FROM cf20gldt;
如果您的 trndt 列不是日期类型,那么您必须将其更改为
SELECT TO_CHAR(TO_DATE(trndt), 'yyyymmdd') FROM cf20gldt;
例如显示系统日期
SELECT TO_CHAR(sysdate,'yyyymmdd') FROM dual;
【讨论】:
ALTER SESSION SET NLS_DATE_FORMAT = 'DD/MM/YYYY';。但不要使用SELECT *。
To_date 是将列转换为日期格式。如果您的 trndt 还不是日期,请在下面使用:
select to_char(to_date(trndt), 'yyyymmdd') from cf20gldt;
或者,如果您的列 trndate 已经是日期格式,则使用以下格式:-
select to_char(trndt, 'yyyymmdd') from cf20gldt;
【讨论】:
你可以使用:
SELECT to_char(sysdate, 'yyyy-mm-dd') date,
to_char(sysdate, 'hh24:mm:ss') hr
FROM DUAL;
通过您的字段类型 Date 更改 sysdate。
【讨论】: