从可用年份的MYSQL“datetime”创建数组

时间:2014-11-10 22:32:00

标签: php mysql arrays datetime timestamp

我已经四处寻找这个问题的简单解决方案,但我似乎无法找到一个。我所拥有的是一个充满时间戳日期的数据库,并希望能够提取所有年份并列出它们。例如,我在' date':

下面有以下数据
2014-11-19 19:58:07
2015-10-14 18:58:05
2014-09-05 04:28:02
2014-10-01 05:58:00
2017-01-20 18:48:00
2014-03-20 07:58:00

并且只想打印以下内容(如果在数据库中,没有重复):

2014
2015
2017

非常感谢任何帮助,谢谢!

编辑:对不起我对此我很陌生"

$query="SELECT DISTINCT YEAR(date) FROM database;";
$result=mysql_query($query);
$numd=mysql_numrows($result);
echo $num;

并打印:

3

但我希望打印出来:

2014
2015
2017

由于

3 个答案:

答案 0 :(得分:1)

您可以使用mysql YEAR函数:

SELECT DISTINCT YEAR(date) FROM table_name;

while($row = mysql_fetch_row($result)) {
    echo $row[0];
}

答案 1 :(得分:0)

SELECT YEAR(date) as myYear
FROM table
GROUP BY myYear

答案 2 :(得分:0)

如果您想在PHP中执行此操作,可以使用' strtotime'将字符串转换为日期。然后使用' date(" Y",$ time)'

获取年份
$myDate = '2014-11-19 19:58:07';
$time = strtotime($myDate);
$year = date("Y", $time);

在这种情况下,$ year将等于2014

编辑:要存储多年而不让它们重复,您可以创建一个新数组,只有在它们不存在的情况下才能为该数组添加年数

if( !in_array($year, $array) )
   #add the year to the array