月份名称长度不正确Oracle Sql

时间:2014-01-10 03:18:20

标签: sql oracle

这是2013年9月完成的一个即时项目,没有问题。甲骨文是后端的。我没有太多进入oracle或任何db。问题是,我们必须用SQL实现一个逻辑。那就是找到日期中的月份长度。它工作,我不确定,可能是我错了或误导,长度看起来很奇怪。经过一些研究与试验n错误,发现它的长度总是一样的?我做错了吗?这是我非常简单的SQL函数调用。

LENGTH(TO_CHAR(proj_created_date,'MONTH'))

不断回归9

经过一番研究后我尝试了LENGTHB()功能,它还是一样吗?我相信它附加了一些空格,并且当然TRIM()修复了它。但我为什么要修剪?我不应该将日期转换为字符串吗?请帮帮我!

还尝试了Oracle 10g和11g jdbc URL ......

感谢。

2 个答案:

答案 0 :(得分:2)

请尝试以下方法。

LENGTH(TO_CHAR(proj_created_date,'FMMONTH'))

进一步解释Here

它不仅仅是月份,也有周名称甚至是日期编号,零日将附加到日期编号。说“01”而不是“1”。根据您的要求使用格式模型。它适用于Oracle 12c。

答案 1 :(得分:0)

MONTH中的

As documentation says to_char()返回填写为9个字符的月份名称。

使用fm前缀suggested。见例:

SELECT
  TO_CHAR(to_date('2014-05-01', 'yyyy-mm-dd'), 'month yyyy') MONTH,
  TO_CHAR(to_date('2014-05-01', 'yyyy-mm-dd'), 'fmmonth yyyy') fmmonth
FROM
  dual;