sql >> Databasteknik >  >> RDS >> Sqlserver

Få datum från ett veckonummer i T-SQL

Quassnois svar fungerar, men du är lite sugen på att städa upp dejterna om de är dejter mitt på dagen (hans start på veckan lämnar dig en dag tidigare än du behöver vara om du använder en tid i mitten för dagen -- du kan testa med GETDATE()).

Jag har använt något liknande tidigare:

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 sidofördel med detta är att du genom att använda @@DATEFIRST kan hantera icke-standardiserade veckostartdagar (standard är söndag, men med SET @@DATEFIRST kan du ändra detta).

Det verkar galet att enkel datummanipulation i SQL Server måste vara så mystisk, men så klart...



  1. Topp 5 MySQL-övervakningsverktyg

  2. Hur man installerar SQL Server

  3. Övervaka dina databaser med MySQL Enterprise Monitor

  4. Hur fyller man i kalendertabellen i Oracle?