如何使用SQL查询基于时间戳获取特定日期的记录?

时间:2017-02-03 06:14:25

标签: sql sql-server

我想从每个星期六获取记录。我有一栏 create_date (时间戳) - 2016-06-22 07:20:22.220

以下查询适用于我一天。

 select * from table
  where create_date > '2016-06-04'
  AND creat_date < '2016-06-05'

但是,如果我想多天获取记录,请说 - 2016-06-11 2016-06-18 2016-06-25

3 个答案:

答案 0 :(得分:3)

您可以使用DATENAME()功能:

SELECT *
FROM yourTable
WHERE DATENAME(dw, create_date) = 'Saturday'

如果您还要限制create_date的范围,可以在WHERE子句中添加一个检查:

SELECT *
FROM yourTable
WHERE DATENAME(dw, create_date) = 'Saturday' AND
      create_date BETWEEN '2016-06-04' AND '2016-06-25'

答案 1 :(得分:0)

您可以尝试在每个推荐日期使用datediff。 这个样本是2016-06-11&#39;。

select * from table
 where datediff(d,'2016-06-11',create_date) in (0,7,14)

答案 2 :(得分:0)

您可以使用DATENAME SQL函数来实现此功能

SELECT *
FROM yourTable
WHERE DATENAME(weekday, create_date) = 'Saturday'