Wie berechne ich das Intervall zwischen zwei datetime2 Spalten (SQL Server)?

8

Hi Ich versuche, den Unterschied zwischen zwei Spalten von datetime2 Typ zu berechnen.

Allerdings scheint SQL Server (2012) Folgendes nicht zu mögen:

%Vor%

Jetzt funktioniert es, wenn ich es auf einen Datetime-Typ umsetze:

%Vor%

Allerdings verliere ich die Genauigkeit, wenn ich es auf datetime umsetze (beachte die 3 Dezimalstellen oben). In diesem Fall brauche ich eigentlich alle 5 Dezimalpunkte. Gibt es eine Möglichkeit, das Intervall zwischen zwei datetime2 Spalten zu erhalten und immer noch 5 Dezimalpunkte Genauigkeit zu halten? Danke.

    
Kevin Tianyu Xu 14.10.2013, 03:54
quelle

2 Antworten

14

Sie können einfach DateDiff

verwenden
  

Gibt die Anzahl (signed integer) des angegebenen Datums zurück   Grenzen zwischen dem angegebenen Startdatum und Enddatum.

%Vor%

Leider versuchen Sie, die erforderliche Präzision zu erhalten:

%Vor%

führt zu einem Überlauffehler:

%Vor%

Eine Möglichkeit, die gewünschte Genauigkeit zu erzielen, besteht darin, die granularen Zeitkomponenten (Tage, Stunden, Minuten, Sekunden usw.) schrittweise zu zerlegen und diese mit DateAdd () von den Werten zu subtrahieren, z. B.

%Vor%     
Mitch Wheat 14.10.2013 03:59
quelle
1

Um den Unterschied zwischen zwei Daten zu finden, müssen Sie die Funktion DATEDIFF

%Vor%     
Igor Borisenko 14.10.2013 03:59
quelle

Tags und Links