sql >> Databáze >  >> RDS >> Sqlserver

Jak vybrat každé pondělí datum a každý pátek datum v roce

Jako základ pro generování rozsahu můžete použít vhodnou tabulku s čísly, jako je tabulka 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)

Ukázkový výstup:

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. Co způsobuje chybu PDO Nelze provádět dotazy, když jsou aktivní jiné dotazy bez vyrovnávací paměti?

  2. MSSQL 2008:Získejte poslední aktualizovaný záznam podle konkrétního pole

  3. Bolestně pomalý Postgres dotaz pomocí WHERE na mnoha sousedních řádcích

  4. Chyba ORA-01791 Pl-Sql