EDYCJA:Rzutowanie na float/int nie działa już w najnowszych wersjach SQL Server. Zamiast tego użyj następującego:
select datediff(day, '1899-12-30T00:00:00', my_date_field)
from mytable
Pamiętaj, że data ciągu powinna mieć jednoznaczny format daty, aby nie wpływały na nią ustawienia regionalne serwera.
W starszych wersjach SQL Server można dokonać konwersji z DateTime na Integer przez rzutowanie na float, a następnie na int:
select cast(cast(my_date_field as float) as int)
from mytable
(Uwaga:nie możesz rzutować bezpośrednio na int, ponieważ MSSQL zaokrągla wartość w górę, jeśli minęło południe!)
Jeśli w Twoich danych występuje przesunięcie, możesz oczywiście dodać lub odjąć to od wyniku
Możesz przekonwertować w innym kierunku, rzucając prosto do tyłu:
select cast(my_integer_date as datetime)
from mytable