从Date中提取年份并在同一查询中对其进行比较

时间:2015-11-18 09:34:31

标签: sql sql-server-2008

我正在处理一个页面,该页面必须根据年份和类型过滤器显示大量信息。 (我将使用参数化查询)

所以我的查询应该类似于:

SELECT Login FROM LeaveRequest 
WHERE StartDateYear = year 
  AND EndDateYear = year 
  AND Type = typeid

但问题是,我的startDate和endDate以下列格式存储:

YYYY-MM-dd

有没有办法从这两个中提取年份并将它们与同一查询中的year变量进行比较?

2 个答案:

答案 0 :(得分:1)

您可以使用Year function

尝试这样做
year(StartDateYear) = year AND year(EndDateYear) = year

假设该列为DateTime。否则,您需要先将列转换为datetime

答案 1 :(得分:0)

SELECT Login FROM LeaveRequest 
WHERE StartDateYear = year(convert(date,'2015-11-18',111))
  AND EndDateYear = year(convert(date,'2015-11-18',111))
  AND Type = typeid