Jeff Smith hat in seinem Weblog ein paar Datumsfunktionen bereitgestellt, die man nutzen kann. Sie sind komplett in TSQL geschrieben und liefern alles, was man so braucht, wenn man mit Datümern im SQL-Server arbeiten will.
In den ersten Betas des SQL-Servers-2005 gab es endlich die Datentypen DATE und TIME. Leider waren sie in .Net implementiert. Als sich langsam heraus kristalisierte, dass .Net mehr Performance kostet als MS lieb war, vielen sie der Schere zum Opfer. Natürlich kann man sich leicht selber DATE- und TIME-Typen schreiben, oder die originalen von MS nehmen (ich bin sicher sie stehen irgendwo im Netz rum), aber dann muss man halt die CLR in die Datenbank importieren. Wenn man sowieso vor hat .Net zu verwenden, dann sollte man sich den Gefallen tun und die Datentypen inkl. der benötigten Funktionen gleich mit rein zu nehmen.
Wenn man das liebt nicht will, dann sind die Funktionen von Jeff Smith eine sehr gute Alternative. Ich habe keine Performance-Messungen gemacht, aber der Code sieht für mich sehr sauber aus.
Hier ist der komplette Artikel "Essential SQL Server Date and Time Functions".