在SQL中获取上周五

时间:2018-06-15 16:00:26

标签: sql sql-server tsql datepart

如何在SQL Server中使用上周五?

这是我到目前为止的代码:

select (7 -datePart(dw, getdate()+3)) +1

3 个答案:

答案 0 :(得分:2)

像这样使用mod:

declare @date datetime = getdate()
declare @dow int = datepart(dw,@date)
declare @mod int = @dow % 7 +1
select cast(dateadd(d,-@mod ,@date) as date)

答案 1 :(得分:0)

如果您的一周从周日开始,那么这是一个单行:

SELECT DATEADD(WEEK
              ,DATEDIFF(WEEK, '1900-01-05', DATEADD(DAY, 6 - DATEPART(DAY, GETDATE()) - 1, GETDATE()))
              ,'1900-01-05') AS [Last Friday]

查询计算自1900-01-05(即星期五)至今天的日期减去1周的周数。这个周数被添加到1900-01-05以获得前一周的星期五。

答案 2 :(得分:0)

试试这个  select convert(varchar(10),DATEADD(DD,-1 - DATEPART(DW,CONVERT(DATETIME,FLOOR(CONVERT(FLOAT,GETDATE()))) ),CONVERT(DATETIME,FLOOR(CONVERT(FLOAT,GETDATE())))),101) 它将在每周的星期五给你