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

Få datoer fra et ugenummer i T-SQL

Quassnois svar virker, men lader dig lidt på krogen for at rydde op i datoerne, hvis de er datoer midt på dagen (hans start på ugen forlader dig en dag tidligere, end du behøver, hvis du bruger en tid i midten af dagen -- du kan teste ved at bruge GETDATE()).

Jeg har brugt sådan noget tidligere:

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

En sidefordel ved dette er, at du ved at bruge @@DATEFIRST kan håndtere ikke-standardiserede ugestartdage (standard er søndag, men med SET @@DATEFIRST kan du ændre dette).

Det virker skørt, at simpel datomanipulation i SQL Server skal være så mystisk, men så er det...



  1. Hvad er den bedste databasestruktur til at opbevare flersprogede data?

  2. SQLite vælg rækker, hvis tidsstemplet matcher dagens dato

  3. MySQL:Hurtigste måde at tælle antal rækker på

  4. Microsoft Access Web App vs Desktop Database