Comment créer de l'heure d'été l'heure de Début et de Fin de fonction en SQL Server

J'ai besoin de créer une fonction en SQL serveur renvoie l'heure d'été début datetime et de l'heure d'été fin datetime.

Je suis venu à travers quelques exemples sur le web, mais ils sont tous à l'aide de la 1ère date de Mars et le 1er jour du mois de novembre et ce n'est pas techniquement correcte.

L'heure d'été commence à 2H du matin sur le 2ème dimanche de Mars et se termine à 2H du matin le premier dimanche de novembre.

J'ai commencé avec le code ci-dessous mais je suis sûr que c'est faux. Toute aide est très appréciée! 🙂

DECLARE @DSTSTART DATETIME

SELECT @DSTSTART = CASE WHEN 
DATEPART(MONTH, SYSDATETIME()) = 3
AND DATEPART(weekday, SYSDATETIME()) = 1
AND DATEDIFF(week,dateadd(week, datediff(week, 0, dateadd(month, datediff(month, 0, SYSDATETIME()), 0)), 0), SYSDATETIME() - 1) = 2
AND DATEPART(HOUR, SYSDATETIME()) = 2
THEN SYSDATETIME()
END
RETURN (@DSTSTART)
END
GO
Je recommande que, lorsque vous vous réveillez le dimanche, vous exécutez une sélection getdate() de la requête. Si elle retourne le temps correct pour l'endroit où vous vivez, il pourrait ne pas être nécessaire de faire quoi que ce soit.
Merci à vous, je me dois de préciser...la date qui est stockée dans notre base de données est l'heure UTC et est capturé au moment de chaque transaction. Nous ne recueillons les données de l'US, mais dans des fuseaux horaires différents. J'ai besoin de convertir les dates à est le temps à des fins de reporting. Donc, quand je lance la requête que j'ai été manuellement le calcul de l'est du temps. Cependant, depuis l'heure d'été se termine ce dimanche et j'ai une tonne de rapports à modifier, j'ai été en espérant pour créer une fonction, donc je n'aurai pas à le faire de nouveau, en Mars 🙂

OriginalL'auteur Amanda Brine | 2013-11-01