Как получать каждый день прошлой недели?

Я хочу получить 5 дат прошлой недели (L-V). У меня есть одна tabla1 где регистрируются даты с понедельника по пятницу, но например, если во вторник не было реестров, я нуждаюсь в том, что в SELECT что сделал в таблицу, возвратило эту дату, но в результате 0 или null но что возвратил это мне, что я не хочу, - это В Понедельник (дату), Среду (дату), Четверг (дату), Пятницу костлявую (дату) здесь нет во вторник, потому что не было реестров.

SELECT DATEADD(wk,DATEDIFF(wk,7,GETDATE()),0)  

С этим select я могу знать, где начинается прошлая неделя (дата), и со следующим я могу получать в последний день (дату):

SELECT DATEADD(wk,DATEDIFF(wk,7,GETDATE()),6-2)  

Независимо, которого, если нет зарегистрированной даты, я хочу, чтобы он возвратил 5 дат недели, как он мог бы делать это или какую-то другую подсказку?

2
задан 12.03.2019, 07:01
1 ответ

такой он такой, как я достал в дни недели, в которой были реестры за прошлую неделю.

SELECT DATENAME(WEEKDAY,Entrada) AS Fechas,DATENAME(DD,Entrada) AS 
NumDay,CONVERT(TIME, DATEADD(MS, SUM( 
DATEDIFF(MS,'00:00:00.000',TiempoPiso)),'00:00:00.000'))AS Tiempo
FROM MiTabla
WHERE Nombre = @nombre and ((CONVERT(date,Entrada)  between 
CONVERT(date,DATEADD(wk,DATEDIFF(wk,7,GETDATE()),0))  and  
CONVERT(date,DATEADD(wk,DATEDIFF(wk,7,GETDATE()),6 -2))))
GROUP BY DATENAME(WEEKDAY,Entrada),DATENAME(DD,Entrada)
ORDER BY DATENAME(DD,Entrada) ASC
0
ответ дан 19.11.2019, 22:16

Теги

Похожие вопросы