使用sql中的CONVERT()将月份名称转换为月份号

时间:2014-02-03 11:03:06

标签: mysql sql

我知道这是一个重复的问题,但我找不到问题的答案。

我想把03-FEB-2014作为03-02-2014。我正在使用以下查询:

SELECT CONVERT(date,CREATED,105) from dbstatus

但它抛出以下错误:

Error starting at line 1 in command:
SELECT CONVERT(date,CREATED,105) from dbstatus
Error at Command Line:1 Column:15
Error report:
SQL Error: ORA-00936: missing expression
00936. 00000 -  "missing expression"
*Cause:    
*Action:

“CREATED”是日期为03-FEB-2014

的列的名称

2 个答案:

答案 0 :(得分:2)

首先选择to_date(date_column,'YYYY-MM-DD'),然后应用to_char(date_column,'YYYY-MM-DD')

--03-FEB-2014 as 03-02-2014
select to_char( to_date(sysdate,'dd-mon-yyyy'),'dd-mm-yyyy') from dual;

答案 1 :(得分:0)

不要使用转换。转换它用于在字符集之间进行转换。

而是将MONTHNAME用于您想要的内容:http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_monthname

编辑:实际上,我认为你要做的是将FEB变成02.如果是这样的话,你可以用它来做到这一点:

month(str_to_date('Feb','%b'))

这将返回2,然后您可以CONCAT进入您的日期。