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

Как да изберете всеки понеделник и всеки петък в годината

Можете да използвате подходяща таблица с числа, като таблицата master..spt_values ​​като основа за генериране на диапазон:

;WITH dates AS (
    SELECT DATEADD(DAY,number,CAST('2014-01-01' AS DATE)) d
    FROM master..spt_values WHERE TYPE = 'p'
    AND number < 366
    )

SELECT 
    Week = DATEPART(WEEK, d), 
    DayOfWeek = DATENAME(dw, d), 
    Date = d
FROM dates
WHERE DATENAME(dw, d) IN ('Monday', 'Friday')
-- or use datepart instead as datename might be specific to language
-- WHERE DATEPART(dw, d) IN (2,6)

Примерен резултат:

Week        DayOfWeek                      Date
----------- ------------------------------ ----------
1           Friday                         2014-01-03
2           Monday                         2014-01-06
2           Friday                         2014-01-10
3           Monday                         2014-01-13
3           Friday                         2014-01-17
4           Monday                         2014-01-20
4           Friday                         2014-01-24
5           Monday                         2014-01-27
5           Friday                         2014-01-31


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Единичен модел за контекст на данни

  2. Групиране по брой и общ брой

  3. T-SQL Динамичен псевдоним без използване на динамичен SQL

  4. Как да деактивирате всички ограничения за проверка и външни ключове в база данни в SQL Server (примери за T-SQL)

  5. Как да експортирате данни като CSV формат от SQL Server с помощта на sqlcmd?