SQL - 仅从周末选择记录

mpe*_*row 4 sql t-sql sql-server-2005

我需要编写一个SQL Select语句来选择DateCreated在过去4周的周末所有记录.我知道我可以通过对下面的选择进行硬编码来做到这一点.但我想知道使用T-sql日期函数是否有更简单的方法.

SELECT * FROM audit_table 
WHERE DateCreated BETWEEN '07-31-2010 00:00:00' AND '08-01-2010 23:59:59'
  OR DateCreated BETWEEN '07-24-2010 00:00:00' AND '07-25-2010 23:59:59'
  OR DateCreated BETWEEN '07-17-2010 00:00:00' AND '07-18-2010 23:59:59'
  OR DateCreated BETWEEN '07-10-2010 00:00:00' AND '07-11-2010 23:59:59'
Run Code Online (Sandbox Code Playgroud)

SQL*_*ace 13

试试这个

where DateCreated  >= DATEADD(DD, DATEDIFF(dd, 0, DATEADD(WK,-4,GETDATE()))+0, 0)
and datepart(dw,DateCreated) in (1,7) -- Sat and Sun only
Run Code Online (Sandbox Code Playgroud)

[编辑]查看关于datefirst的评论[/编辑]