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

Získejte data z čísla týdne v T-SQL

Quassnoiova odpověď funguje, ale trochu vás nechává na háku, pokud jde o data uprostřed dne (jeho začátek týdne vás nechá o den dříve, než potřebujete, pokud použijete čas uprostřed dne -- můžete testovat pomocí GETDATE()).

V minulosti jsem použil něco takového:

SELECT 
   CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL), DATECOL)), 101),
   CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATECOL) - 6, DATECOL)), 101)

Vedlejší výhodou toho je, že pomocí @@DATEFIRST můžete zpracovat nestandardní počáteční dny týdne (výchozí je neděle, ale pomocí SET @@DATEFIRST to můžete změnit).

Zdá se bláznivé, že jednoduchá manipulace s datem v SQL Server musí být tak tajemná, ale jde to...



  1. Polymorfismus v SQL databázových tabulkách?

  2. Číslo řádku na skupinu v mysql

  3. Spuštění klastru MariaDB Galera bez nástrojů pro orchestraci – DB Container Management:Část druhá

  4. Kde PostgreSQL ukládá konfigurační/conf soubory?