我创建了一个雇员表,其列为Date_Of_Joining
。
我以YYYY-MM-DD
格式输入了数据。
现在,我只想使用YEAR
来检索员工的数据。
例如,如果我输入Date_Of_Joining为2010-10-15、2012-05-18和2008-04-16。
现在,我需要Date_Of_Joining
在2010年之后的员工的详细信息。
答案 0 :(得分:1)
尝试执行这样的查询
select * from employee-table where year(Date_Of_Joining) > 2010
用您的表名称替换“ employee-table”。 该查询将提供2010年之后的所有数据
答案 1 :(得分:1)
SELECT * FROM Employee WHERE YEAR(Date_Of_Joining) > 2010
如果Date_Of_Joining
数据类型为DATE
,查询将起作用,如果数据类型为varchar,则需要将其转换为DATE格式,然后应用查询。
如果要按月份和年份进行过滤,可以将其用作
SELECT * FROM Employee
WHERE YEAR(Date_Of_Joining) > 2010 AND MONTH(Date_Of_Joining) > 1
如果范围是2010年1月至2013年5月,则可以用作
SELECT * FROM Employee
WHERE (YEAR(Date_Of_Joining) >= 2010 AND MONTH(Date_Of_Joining) >= 1)
OR (YEAR(Date_Of_Joining) <= 2013 AND MONTH(Date_Of_Joining) <= 5)
答案 2 :(得分:0)
只需遵循
SELECT YEAR(Date_Of_Joining)
这是获取年份的通用格式
答案 3 :(得分:0)
我强烈建议您将其表达为:
Date_Of_Joining >= '2011-01-01'
也就是说,您应该避免使用表达式YEAR(Date_Of_Joining)
。为什么?在列上使用函数会阻止某些优化策略,尤其是那些使用索引和分区的优化策略。
对于此特定示例,您可能有少量数据,因此它实际上不会影响 this 查询的性能。但是您最好还是学习如何在性能上牢记。