从MYSQL';创建数组;日期时间';可用年数


Creating array from MYSQL 'datetime' of years available

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

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

感谢

您可以使用mysql YEAR函数:

SELECT DISTINCT YEAR(date) FROM table_name;
while($row = mysql_fetch_row($result)) {
    echo $row[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
SELECT YEAR(date) as myYear
FROM table
GROUP BY myYear