更改年份sql中的datepart

时间:2016-01-05 06:17:57

标签: sql sql-server

我在SP中使用datepart函数。它用于比较指定日期的周和年。

现在我的查询在新年开始时出现。我有一张叫做“任务”的桌子。它正在明确地存储任务。现在当我用DATEPART(YY,'2016-01-05')执行SP时。它提供了适当的2016年数据。但是我使用DATEPART(ISOWK,'2016-01-05')执行它,它也会使用2016年的数据提供2015年的数据。

我想要数据从2015年12月28日到2016年1月2日。本周的数据。我无法获得1月1日和2月的数据。请帮帮我。

谢谢,

2 个答案:

答案 0 :(得分:0)

ISOWK返回周数

您正试图从2015-12-28到2016-01-02获取约会。 2015-12-28的周数为53,2016-01-02为53

答案 1 :(得分:0)

如果您已经确定了开始日期和结束日期,那么您可以使用如下所示的简单查询来过滤日期范围。

在查询中提及日期字符串时,请确保遵循以下格式:yyyymmdd SQL Server将自动理解该格式。您不需要DATEPART来获取两个日期之间的记录。

查询日期范围内的过滤

SELECT TaskID, TaskDescription
 FROM  Tasks 
where TaskDate between '20151228' and '20160102'

您可以用于日期范围过滤的另一个查询

SELECT TaskID, TaskDescription
 FROM  Tasks 
where TaskDate >= '20151228' and TaskDate <= '20160102'