您正在尝试使用格式DD-MON-YYYY将定义为日期的列转换为日期但无法使其正常工作
select
to_date(to_char
(DESIGN_COMPLETION_DATE,'DD-MON-YYYY'),'DD-MON-YYYY') as Assessment_Completion_Date
from nbi_dates
还试过
Select to_date(DESIGN_COMPLETION_DATE,'DD-MON-YYYY') as Assessment_Completion_Date
from nbi_dates
什么有效,但我不能做任何计算,因为它是char
Select to_char(DESIGN_COMPLETION_DATE,'DD-MON-YYYY') as Assessment_Completion_Date
from nbi_dates
由于
答案 0 :(得分:1)
如果您的DATE
包含时间部分,但只对实际日期部分感兴趣,则可以使用trunc
功能:
select trunc(design_completion_date) as assessment_completion_date from nbi_dates
使用sysdate
的差异示例;请注意trunc
'版本的时间已设置为午夜:
SQL> alter session set nls_date_format = 'DD/MM/YYYY HH24:MI:SS';
Session altered.
SQL> select sysdate, trunc(sysdate) from dual;
SYSDATE TRUNC(SYSDATE)
------------------- -------------------
11/04/2013 15:14:31 11/04/2013 00:00:00
DATE
没有固有的格式。 DD-MON-YYYY
是一个格式掩码,用于显示日期或将其转换为字符串表示形式,通常只有在显示时才需要。您拥有的第三个选项适合于此目的,但如果您想对结果进行任何进一步的日期计算,则不会。
答案 1 :(得分:0)
Select to_date(to_char(DESIGN_COMPLETION_DATE,'DD-MON-YYYY'),'DD-MON-YYYY') as Assessment_Completion_Date
from nbi_dates
或简单(如果您想要计算日期对象而不是渲染)
Select DESIGN_COMPLETION_DATE as Assessment_Completion_Date
from nbi_dates