4

在 mysql 表中,我有字段“日期”,其数据为

2012-08-02 02:33:26
2012-08-02 05:33:26
2012-07-02 06:33:26
2012-06-02 01:33:26 
2012-06-10 09:33:26 
2011-05-10 10:33:26 
2011-04-10 02:33:26 

像那样

我想得到输出

2012-08
2012-07
2012-06
2011-05
2011-04

即获取唯一的年份和月份(日期字段的年份和月份不同)

我使用了以下查询

SELECT  distinct(YEAR(date)) FROM table

它只返回年份。我想得到上面定义的输出。有没有可能得到这样的输出。我如何编写选择查询。

请帮助解决这个问题。

4

3 回答 3

13

你可能想试试这个:

SELECT DISTINCT DATE_FORMAT(colName, '%Y-%m')
FROM tableName

请参阅此处:Date_Format()

于 2012-08-17T06:32:48.847 回答
3
SELECT DISTINCT DATE_FORMAT(`date`, '%Y-%m') FROM table

你可以从这里获得全面的帮助http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

于 2012-08-17T06:38:59.520 回答
2

假设您从数据库中得到这样的结果:-

$row['date']=2012-08-02 02:33:26;

然后你可以使用爆炸功能: -

$var=explode(" ",$row['date']);
$date=$var[0];//here you will get  2012-08-02

$res=explode("-",$date);
$res1=$res[0];//you will get 2012
$res2=$res[1];//you will get 08
$res3=$res[2];//you will get 02

现在是最终结果:-

$final=$res1."-".$res2;//you will get 2012-08

如果您不想在 MySQL 端处理此问题,这是一个替代答案,因此您可以使用 PHP 概念来处理此问题。

于 2012-08-17T07:03:50.853 回答