我想以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')
但它无法正常工作。
答案 0 :(得分:1)
来自评论和帖子 :
varchar
和adjdeldat
的数据类型为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