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