如何在SQL Server中使用上周五?
这是我到目前为止的代码:
select (7 -datePart(dw, getdate()+3)) +1
答案 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) 它将在每周的星期五给你