我有一个要求,当我需要转换一个日期值(14-08-2013)到(14-8月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 发布于 2013-08-14 08:28:55
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 并以2位数的形式使用mm代替mmm来表示月份
发布于 2013-08-14 08:32:37
Oracle的TO_DATE函数期望格式字符串与输入匹配。
to_date('11-08-2013', 'dd-mm-yyyy')(注意事项:mm用于2位月数,而不是mmm -三个字符月使用mon)将将字符串转换为日期,您的查询应该处理该日期。hh24:mi:ss部分没有必要,因为您的字符串中没有时间组件。不过,我的机器上的Oracle11g仍然能处理它。
但你的问题是
我需要将日期值(14-08-2013)转换为(14-8月13日)。
...which看起来可能是输出问题吗?可能是输出中的日期列吗?应用相同的格式字符串,例如:
SELECT TO_CHAR(hol_date, 'DD-MON-YY') FROM ...发布于 2013-08-14 08:04:53
试着像这样;
to_date('11-08-2013', 'DD-MON-YY')D -月中的一天
三个字符的MON -月份,即“一月”、“二月”、“四月”
YY --一年中最后两位数。
https://stackoverflow.com/questions/18226092
复制相似问题