Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

SSIS израз за намиране предишния петък

Ще работи ли това (можете да замените GETDATE() за @date , току-що го използвах, за да тествам лесно различни дати)

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

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

АКТУАЛИЗАЦИЯ:Тук е същото, но направено в SSIS променлив израз:

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

АКТУАЛИЗАЦИЯ №2:Ето как да върнете предишния петък за ВСЯКА дата, не само за понеделник

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. Показване на изображение в RDLC отчет от база данни по пътя на изображението

  2. SQL Query продължава да работи много дълго време, ако терминът за търсене не бъде намерен

  3. Как да създадете ограничение за проверка на множество колони в SQL Server - SQL Server / TSQL урок, част 84

  4. Вземете всички точки (кръгове с радиус), които се припокриват с дадена точка

  5. T-SQL - Вмъкване на данни в родителски и дъщерни таблици