从sql值中选择一年,其日期值为xxxx-xx-xx

时间:2012-03-02 16:17:26

标签: php mysql sql linux

在我的SQL表中,我在bday列中生成了商店(例如)1987-02-31

我想要一个只从年份中选择的SELECT查询,并忽略月份和日期,例如:

SELECT FROM users WHERE bday=1987

这可能与以这种方式存储的日期有关吗?

4 个答案:

答案 0 :(得分:5)

您只需使用YEAR() MySQL function

即可
WHERE YEAR(bday)=1987

答案 1 :(得分:1)

如果字段是Date数据类型,@ soju的答案是正确的,但是......

您明确表示您的数据库已将其存储为1987-02-31

对我而言,这表明您可能正在处理使用varchar或其他文本字段来存储应该是日期的数据库。

如果是这种情况,您可以使用SUBSTRING功能。

WHERE SUBSTRING(bday, 1,4) = '1987'

答案 2 :(得分:0)

使用MySQL,如果你的bday是一个日期列(不是文本列),你可以像这样使用year()函数:

select * from users where year(bday)=1987;

答案 3 :(得分:0)

SELECT FROM users WHERE bday LIKE '1987-%'