我在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月的数据。请帮帮我。
谢谢,
答案 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'