Frank (no reg): SQL Abfrage Problem

Beitrag lesen

Hi,

... dann funktioniren beide lösungen nicht.

ist schlicht inkorrekt. Sie bieten lediglich eine gewisse
Ungenauigkeit.

Der erste Parameter von DATEDIFF gibt (machen wir's mal umgangs-
sprachlich) die Unschärfe der Berechnung an.

Der ermittelte Unterschied ist größer als 0 (Tage) aber kleiner
als 1 (Tag). Da die Ergebnisunschärfe mit 'Tag' angegeben ist
und der Rückgabewert der DATEDIFF Funktion ganzzahlig ist, kann
also nur 1 rauskommen.

<quote>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.</quote>
** Quelle: MS SQL Books Online, Transact SQL Reference.

Wenn eine genaue (Fließkomma-)Anzahl von 24 Std.-Tagen bzw. 1440
Minuten-Tagen benötigt wird, sollte man die Sache vielleicht so
angehen:

SELECT CAST(DATEDIFF(minute,[datecolumn],getdate()) AS DECIMAL)/1440

ich hoffe, die Erklärung hat zum Verständnis beigetragen ...

Ciao, Frank