如何将日期值转换为oracle日期值?

时间:2013-08-14 07:55:18

标签: c# sql oracle

我需要将日期值(14-08-2013)转换为(14-AUG-13)。我使用了以下查询,但它不起作用:

select *
from ind_holidays
where hol_date between to_date('11-08-2013', 'dd-mmm-yyyy hh24:mi:ss') AND to_date('17-08-2013', 'dd-mmm-yyyy hh24:mi:ss')
ORDER by name    

3 个答案:

答案 0 :(得分:2)

to_date格式字符串中的时间部分是不必要的。像这样更改您的查询:

select *
from ind_holidays
where hol_date between to_date('11-08-2013', 'dd-mm-yyyy') AND to_date('17-08-2013', 'dd-mm-yyyy')
ORDER by name   

并使用mm而不是mmm包含2个数字的月份

答案 1 :(得分:2)

Oracle的TO_DATE函数希望格式字符串与输入匹配。

to_date('11-08-2013', 'dd-mm-yyyy')

注意mm表示2位数的月份数,而不是mmm - 三个字符的月份使用mon)会将字符串转换为日期,您的查询应该处理。 hh24:mi:ss部分不是必需的,因为您的字符串中没有时间组件。我的机器上的Oracle 11g仍然处理它。

但你的问题是

  

我需要将日期值(14-08-2013)转换为(14-AUG-13)

...看起来像是输出问题?也许是输出中的日期列?应用相同的格式字符串,例如:

SELECT TO_CHAR(hol_date, 'DD-MON-YY') FROM ...

答案 2 :(得分:1)

试试这个;

to_date('11-08-2013', 'DD-MON-YY')

D - 每月的某一天

MON - 三个字符的月份,即“Jan”,“Feb”,“Apr

YY - 年度的最后两位数字。