Hallo Axel
bin grade etwas verwirrt. Was soll ich jetzt genau machen?
- Nachsehen, ob MS SQL keine DATEDIFF-Funktion hat und ob Du damit nicht bereits das gewünschte Ergebnis erzielen kannst.
Selbstverständlich gibt es eine DATEDIFF-Funktion in Transact-SQL :-)
DATEDIFF ( datepart , startdate , enddate )
Die Online-Hilfe gibt weitere Hinweise zur Verwendung, ich zitiere:
<zitat quelle="MS SQL Server Online-Dokumentation">
Hinweise
startdate wird von enddate subtrahiert. Wenn startdate später ist als enddate, wird ein negativer Wert zurückgegeben.
DATEDIFF erzeugt einen Fehler, wenn das Ergebnis außerhalb des Bereichs für ganze Zahlen liegt. Bei Millisekunden beträgt der maximale Zeitraum 24 Tage, 20 Stunden, 31 Minuten und 23,647 Sekunden. Bei Sekunden sind dies maximal 68 Jahre.
Durch das Zählen von überschrittenen Einheiten wie Minuten, Sekunden oder Millisekunden ist das von DATEDIFF erzeugte Ergebnis über alle Datentypen hinweg konsistent. Das Ergebnis ist ein ganzzahliger, vorzeichenbehafteter Wert, der der Zahl der zwischen dem ersten und dem zweiten Datum überschrittenen datepart-Einheiten entspricht. Beispielsweise ist die Anzahl der Wochen zwischen Sonntag, dem 4. Januar, und Sonntag, dem 11. Januar, gleich 1.
</zitat>
Der OP könnte somit DATEDIFF mehrfach (für jedes benötigte Zeitintervall) aufrufen, evtl. hilft ihm auch
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )
weiter, oder er rechnet das Ergebnis selbst in sein Format um.
Freundliche Grüße
Vinzenz