Php 从完整数据筛选年度中获取年度

Php 从完整数据筛选年度中获取年度,php,mysql,return,Php,Mysql,Return,我的数据库中有一个数据,如: 2016-05-17 , 2015-05-20 , 2015-02-02 我只想获得创建列表的年份,如: 2016 , 2015 我正在做这个: SELECT * FROM insercao GROUP BY SUBSTR(data,0,4) 但这个回报只是: 2015 如何返回所有未重复的年份?如果数据是一个日期时间字段,则必须以以下方式更改查询: SELECT * FROM insercao GROUP BY YEAR(`da

我的数据库中有一个数据,如:

2016-05-17     ,     2015-05-20    ,    2015-02-02
我只想获得创建列表的年份,如:

2016 , 2015
我正在做这个:

SELECT * FROM insercao GROUP BY SUBSTR(data,0,4)
但这个回报只是:

2015
如何返回所有未重复的年份?

如果
数据
是一个日期时间字段,则必须以以下方式更改查询:

SELECT * FROM insercao GROUP BY YEAR(`data`)
SELECT YEAR(`time`) as year FROM insercao GROUP BY year
编辑: 事实上,要仅返回年份值,您必须按以下方式操作:

SELECT * FROM insercao GROUP BY YEAR(`data`)
SELECT YEAR(`time`) as year FROM insercao GROUP BY year
如果
data
是一个日期时间字段,则必须通过以下方式更改查询:

SELECT * FROM insercao GROUP BY YEAR(`data`)
SELECT YEAR(`time`) as year FROM insercao GROUP BY year
编辑: 事实上,要仅返回年份值,您必须按以下方式操作:

SELECT * FROM insercao GROUP BY YEAR(`data`)
SELECT YEAR(`time`) as year FROM insercao GROUP BY year

从日期提取中选择不同的提取(从日期开始的年份\u列\u名称)

MYSQL的extract关键字从您提到的日期格式中提取年份。

Distinct将仅选择非重复年份。

选择Distinct EXTRACT(从日期开始的年份\u列\u名称)从日期开始的年份\u EXTRACT

MYSQL的extract关键字从您提到的日期格式中提取年份。

Distinct将只选择非重复年份。

从insercao中选择Distinct(SUBSTR(数据,0,4))
是将逗号分隔的值存储在一行中还是将日期存储在多行中?我正在使用fetch_assoc PHP获取数据。
选择Distinct(SUBSTR(数据,0,4))从Inserco
中,您是将逗号分隔的值存储在一行中,还是将日期存储在多行中?我正在使用fetch\u assoc PHP获取数据。@user36644如果您的
数据
是什么类型?(请注意,在我的回答中有一个输入错误:删除
数据
后的空格)我的db类型是数据。是的,我删除了spacetype
数据
?键入日期
。它不工作是因为它不返回年份还是因为只返回一行?请参阅我修改后的答案,该答案不返回任何内容如果它不返回任何内容,则说明您的代码或数据库有问题。再检查一遍。我已经用datetime和date字段测试了我的两个解决方案,它们都有效。@user36644如果您的
数据
,它们是什么类型的?(请注意,在我的回答中有一个输入错误:删除
数据
后的空格)我的db类型是数据。是的,我删除了spacetype
数据
?键入日期
。它不工作是因为它不返回年份还是因为只返回一行?请参阅我修改后的答案,该答案不返回任何内容如果它不返回任何内容,则说明您的代码或数据库有问题。再检查一遍。我已经用datetime和date字段测试了我的两个解决方案,它们都有效。你确定吗?我刚试过:(数据截图:查询结果截图:如果我答错了问题,请告诉我。你确定吗?我刚试过:(数据截图:查询结果截图:如果我答错了问题,请告诉我。)。