Mysql:更改日期格式

时间:2014-04-15 05:36:51

标签: mysql

我想以mm / yyyy更改日期格式。我的查询就是这样。

select shipwynum,
        IF (s.adjdeldat != '',  s.adjdeldat,s.condeldat) as -- adjdeldat and condeldat are date type
        deliverydate,
FROM ship
Result of that query come in yyyymmdd fromat but i want result in mm/yyyy format.

我像那样使用DATE_FORMAT

DATE_FORMAT(s.adjdeldat,'%m/%Y')
DATE_FORMAT(s.condeldat,'%m/%Y')

但它无法正常工作。

2 个答案:

答案 0 :(得分:1)

来自评论和帖子

  

varcharadjdeldat的数据类型为condeldat,并将数据保存在 yyyymmdd yyyymm

     

我想更改 mm/yyyy

中的日期格式      

您的意思是某些数据采用 20140415 格式,部分数据采用 < em> 201404 格式?

     

是的,我希望这些数据 04/2014 格式

更改您的查询,如下所示

select 
  shipwynum,
  if( s.adjdeldat != '',  
      date_format( str_to_date( s.adjdeldat, '%Y%m%d' ), '%m/%Y' ),
      date_format( str_to_date( s.condeldat, '%Y%m%d' ), '%m/%Y' ) 
  ) deliverydate,
from ship

即使某些日期值错过了dd部分,当从00转换时,MySQL会默默地将其替换为str_to_date

示例

select 
  @dt:=str_to_date( '201404', '%Y%m%d' ) dt, 
  date_format( @dt, '%m/%Y' ) df;

结果

+------------+---------+
| dt         | df      |
+------------+---------+
| 2014-04-00 | 04/2014 |
+------------+---------+
1 row in set (0.00 sec)

答案 1 :(得分:0)

试试这个:

DATE_FORMAT(NOW(),'%m-%d-%Y')

<强> http://www.w3schools.com/sql/func_date_format.asp

您的代码如下:

SELECT DATE_FORMAT(NOW(), '%M %Y');

SELECT DATE_FORMAT(a.date, '%M/%Y') FROM t1 AS a;

<强> http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

sqlfiddle:http://sqlfiddle.com/#!2/6a68f/2