Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Wyrażenie SSIS, aby znaleźć poprzedni piątek

Czy to zadziała (możesz zastąpić GETDATE() dla @date , użyłem tego tylko do łatwego przetestowania różnych dat)

DECLARE @date DATETIME
SET @date = '2013-01-14'

SELECT
    PrevFriday = CASE WHEN DATEPART(weekday, @date) <> 2 THEN @date
                      ELSE DATEADD(DAY, -3, @date)
                 END

AKTUALIZACJA:to samo, ale zrobione w wyrażeniu zmiennym SSIS:

DATEPART("dw", GETDATE()) != 2?
GETDATE():
DATEADD("dw", -3, GETDATE())

AKTUALIZACJA #2:Oto jak zwrócić poprzedni piątek dla DOWOLNEJ daty, nie tylko w poniedziałek

SELECT DATEADD(DAY, -1 - (DATEPART(weekday, @date) % 7), @date)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak ustawić domyślny wiersz dla zapytania, które nie zwraca żadnych wierszy?

  2. Używanie RegEx w SQL Server

  3. potrzebna data w formacie rrrr-mm w mssql

  4. SQLException :ciąg znaków lub dane binarne zostaną obcięte

  5. Konwertuj „datetimeoffset” na „datetime” w SQL Server (przykłady T-SQL)