sql >> Database >  >> RDS >> Sqlserver

Ontvang datums van een weeknummer in T-SQL

Het antwoord van Quassnoi werkt, maar laat je een beetje aan de haak voor het opruimen van de datums als het midden op de dag zijn (zijn begin van de week laat je een dag eerder achter dan je zou moeten zijn als je een tijd in het midden gebruikt van de dag -- je kunt testen met GETDATE()).

Ik heb in het verleden zoiets als dit gebruikt:

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

Een bijkomend voordeel hiervan is dat je door @@DATEFIRST te gebruiken niet-standaard weekstartdagen kunt afhandelen (de standaard is zondag, maar met SET @@DATEFIRST kun je dit veranderen).

Het lijkt gek dat eenvoudige datummanipulatie in SQL Server zo geheimzinnig moet zijn, maar daar ga je...



  1. Postgresql - kan database niet verwijderen vanwege enkele automatische verbindingen met DB

  2. BDE vs ADO in Delphi

  3. MySQL:hoe externe verbinding met mysql toe te staan?

  4. Wat is beter in MYSQL count(*) of count(1)?