2016-04-27 5 views
-1

Ich habe 2 datetime Spalten in einer Tabelle und ich möchte jede Zeile voneinander subtrahieren und irgendwie Ergebnisse in neue 3. Spalte Zeilen als int setzen.Subtrahieren Sie datetime von zwei Spalten und setzen Sie das Ergebnis als Integer in

Ich weiß, ich muss DATEFIFF irgendwie verwenden, aber was verwirrt mich noch mehr, wie ich jede Zeile einer Tabelle analysieren (While-Schleife vielleicht)?

Vielen Dank!

+0

Sie denken nicht wie SQL, es verwendet einen Set-basierten Ansatz, nicht einen Cursor-basierten Ansatz. Sie fügen einfach die DATEDIFF-Funktion in der SELECT-Anweisung hinzu und sie wird für jede Zeile in der Tabelle gelten. –

+0

Tag dbms verwendet! (datediff ist produktspezifische Funktionalität.) – jarlh

Antwort

0

Beispiel von SQL 2008 zu gehen, wobei Date1Column und Date2Column Datetime-Felder sind. Ich habe ein paar Beispiele gegeben, die Delta zwischen Daten in Minuten, Tagen, Monaten zeigen.

Select 

    ,CAST(DATEDIFF(mi, Date1Column, Date2Column) as int) as 'DeltaMinutes' 
    ,CAST(DATEDIFF(day, Date1Column, Date2Column) as int) as 'DeltaDays' 
    ,ISNULL(DATEDIFF(MONTH, Date1Column, Date2Column), -9999) as 'LastSWAge' 

From Table 
+0

Danke, es war hilfreich. – grunf00

Verwandte Themen