Frage

INSERT INTO timecrunch.dbo.intervals (IntervalID, Duration) 
SELECT ixInterval, DATEDIFF(hour, dtStart, dtEnd) FROM fogbugz.dbo.TimeInterval
WHERE dtEnd is not NULL

intervalID ist ein int, Laufzeit ist ein Schwimmer

Ich versuche, alle Stundendauern in der Spalte Dauer zu setzen ... Ich gehe davon aus, dass selbst wenn es weniger als eine Stunde ist, wird es einen Bruchteil verwenden, weshalb ich einen Schwimmer setzen?

Hilfe.

PS: Es ist in Ordnung keine Fehler läuft, aber nachdem er die Intervalle Tabelle getan ist noch leer ... Ich weiß, dass die Daten in der Tabelle TimeInterval ist aber ...

War es hilfreich?

Lösung

Ich bin mir nicht sicher, warum Ihre Daten nicht nach oben zeigt, aber DATEDIFF ist kein Schwimmer geht zurück. Um einen Schwimmer zu bekommen, werden Sie wahrscheinlich eine kleinere Einheit von Zeit und Dividieren durch die Anzahl Ihrer Einheiten pro Minute verwendet werden sollen. Beispiel:

DATEDIFF(second, dtStart, dtEnd) / (3600.0)

Andere Tipps

DATEDIFF ein Int der Anzahl der Datumsteil Grenzen überschritten. Ich würde erwarten, dass Sie den Boden der Anzahl der Stunden Dauer erhalten, es sei denn, es ein Problem mit implizite Konvertierung von Int ist zu schweben.

Es ist auch hilfreich, die Fehlermeldung schreiben erhalten.

Zum tatsächlichen Fraktionen einer Stunde Verwendung einfügen:

INSERT INTO timecrunch.dbo.intervals (IntervalID, Duration) 
SELECT 
  ixInterval, 
  DATEDIFF(mi, dtStart, dtEnd) / 60.0
FROM 
  fogbugz.dbo.TimeInterval
WHERE 
  dtEnd is not NULL

DATEDIFF immer gibt Ihnen einen INT-Wert, nie einen Bruchteil.

Versuchen Sie, die SELECT auf seine eigene mit der INSERT-Bit ausgeführt wird, um zu überprüfen, dass Ihre Abfrage tatsächlich einige Daten zurückgibt.

Edit:. Wie andere gesagt haben, DATEDIFF einen int zurückgibt, nicht ein Schwimmer, aber das sollte die INSERT aus Einfügen einige Daten nicht verhindern

Zuerst Welche Ergebnisse erhalten Sie nur vom Laufen der wählen?

In SQL Server DateDiff gibt einen int ( Siehe MSDN )

DATEDIFF wird ein int kein Schwimmer zurückkehren - ist, dass das Problem bei Ihnen auftritt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top