在我的SQL表中,我在bday
列中生成了商店(例如)1987-02-31
我想要一个只从年份中选择的SELECT查询,并忽略月份和日期,例如:
SELECT FROM users WHERE bday=1987
这可能与以这种方式存储的日期有关吗?
答案 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-%'