从给定日期仅选择年份

时间:2019-04-25 08:24:13

标签: sql sorting date

我创建了一个雇员表,其列为Date_Of_Joining

我以YYYY-MM-DD格式输入了数据。

现在,我只想使用YEAR来检索员工的数据。

例如,如果我输入Date_Of_Joining为2010-10-15、2012-05-18和2008-04-16。

现在,我需要Date_Of_Joining在2010年之后的员工的详细信息。

4 个答案:

答案 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 查询的性能。但是您最好还是学习如何在性能上牢记。