Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Konvertieren Sie von DateTime in INT

BEARBEITEN:Das Umwandeln in ein Float/Int funktioniert in neueren Versionen von SQL Server nicht mehr. Verwenden Sie stattdessen Folgendes:

select datediff(day, '1899-12-30T00:00:00', my_date_field)
from mytable

Beachten Sie, dass das String-Datum ein eindeutiges Datumsformat haben sollte, damit es nicht von den regionalen Einstellungen Ihres Servers beeinflusst wird.

In älteren Versionen von SQL Server können Sie DateTime in Integer umwandeln, indem Sie in ein Float und dann in ein Int umwandeln:

select cast(cast(my_date_field as float) as int)
from mytable

(Hinweis:Sie können nicht direkt in einen int-Wert umwandeln, da MSSQL den Wert aufrundet, wenn Sie nach Mittag sind!)

Wenn Ihre Daten einen Versatz enthalten, können Sie diesen natürlich zum Ergebnis addieren oder davon abziehen

Sie können in die andere Richtung konvertieren, indem Sie direkt zurückgeben:

select cast(my_integer_date as datetime)
from mytable