在MySQL中格式化日期以返回MonthName,Year

时间:2011-11-17 02:04:16

标签: mysql sql datetime

我在表中有行需要按日期排序。很容易,使用date数据类型来存储它们,ORDER BY日期等等。

但是,我正在尝试获取这些行,并轻松将日期转换为MonthName, Year

如果我将行的日期存储为2011-11-16,我会想要提取它(使用PHP)并打印出来:

 November, 2011

7 个答案:

答案 0 :(得分:15)

试试这个

SELECT DATE_FORMAT(`date`,'%M %Y') AS showdate FROM table

使用此网站http://www.mysqlformatdate.com/获取您想要的(mysql)日期格式

答案 1 :(得分:4)

SELECT DATE_FORMAT(date_col, '%M, %Y')
FROM   tbl
-- WHERE ??
ORDER  BY date_col;

关于那个manual knows more

答案 2 :(得分:3)

您可以使用以下查询获取日期年份和月份名称。

SELECT DATE_FORMAT("2017-06-15", "%Y %M") as 'Date';

如果您需要其他格式,请应用以下组合。

语法:DATE_FORMAT(date, format_mask)

Format  Description
%a  Abbreviated weekday name (Sun to Sat)
%b  Abbreviated month name (Jan to Dec)
%c  Numeric month name (0 to 12)
%D  Day of the month as a numeric value, followed by suffix (1st, 2nd, 3rd, ...)
%d  Day of the month as a numeric value (01 to 31)
%e  Day of the month as a numeric value (0 to 31)
%f  Microseconds (000000 to 999999)
%H  Hour (00 to 23)
%h  Hour (00 to 12)
%I  Hour (00 to 12)
%i  Minutes (00 to 59)
%j  Day of the year (001 to 366)
%k  Hour (0 to 23)
%l  Hour (1 to 12)
%M  Month name in full (January to December)
%m  Month name as a numeric value (00 to 12)
%p  AM or PM
%r  Time in 12 hour AM or PM format (hh:mm:ss AM/PM)
%S  Seconds (00 to 59)
%s  Seconds (00 to 59)
%T  Time in 24 hour format (hh:mm:ss)
%U  Week where Sunday is the first day of the week (00 to 53)
%u  Week where Monday is the first day of the week (00 to 53)
%V  Week where Sunday is the first day of the week (01 to 53). Used with %X
%v  Week where Monday is the first day of the week (01 to 53). Used with %X
%W  Weekday name in full (Sunday to Saturday)
%w  Day of the week where Sunday=0 and Saturday=6
%X  Year for the week where Sunday is the first day of the week. Used with %V
%x  Year for the week where Monday is the first day of the week. Used with %V
%Y  Year as a numeric, 4-digit value
%y  Year as a numeric, 2-digit value

答案 3 :(得分:1)

在php中试试这个:

<?=format_date($column_name['date'],"M, Y")?>

答案 4 :(得分:0)

在SQL中你可以得到

SELECT year(DBDate), month(DBDate) FROM dates ORDER BY DBDate

答案 5 :(得分:0)

在mysql中获取日期后,请在php

中使用
$date = mysql_result(mysql_query("SELECT date FROM table"),0,0);
echo date("F, Y", strtotime($date));

答案 6 :(得分:0)

试试这个

$sql = "SELECT DATE_FORMAT(`date`,\'%M %Y\') AS showdate FROM `allowances`";