嗨,我正在尝试将定义为日期的列转换为格式为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
什么是有效的,但我不能做任何计算,因为它是字符
Select to_char(DESIGN_COMPLETION_DATE,'DD-MON-YYYY') as Assessment_Completion_Date
from nbi_dates
感谢
如果您有一个包含时间部分但只对实际日期部分感兴趣的DATE
,则可以使用trunc
函数:
select trunc(design_completion_date) as assessment_completion_date from nbi_dates
使用CCD_ 3的差异的示例;注意,trunc
'd版本上的时间已设置为午夜:
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
是一种格式掩码,用于显示日期,或将其转换为字符串表示,这通常只用于显示。你的第三个选择是正确的,但如果你想对结果进行任何进一步的日期计算,那就不行了。
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