oracle10g将带有时间戳的日期列转换为dd-mon-yyyy格式



嗨,我正在尝试将定义为日期的列转换为格式为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

最新更新