sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan vælger du hver mandagsdato og hver fredagsdato i året

Du kan bruge en passende tabel med tal, som f.eks. master..spt_values-tabellen som grundlag for generering af interval:

;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)

Eksempeloutput:

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. forskel mellem hex-konstanter og decimalkonstanter i SQL-server

  2. Mysqldump' genkendes ikke som et internt eller eksternt kommandoprogram eller batchfil

  3. Oracle ROWID som funktion/procedure parameter

  4. Sådan fremhæves poster eller værdier i en Microsoft Access-rapport ved hjælp af betinget formatering