EDIT:Casting til en float/int virker ikke længere i nyere versioner af SQL Server. Brug i stedet følgende:
select datediff(day, '1899-12-30T00:00:00', my_date_field)
from mytable
Bemærk, at strengdatoen skal være i et utvetydigt datoformat, så den ikke påvirkes af din servers regionale indstillinger.
I ældre versioner af SQL Server kan du konvertere fra en DateTime til et heltal ved at caste til en float og derefter til en int:
select cast(cast(my_date_field as float) as int)
from mytable
(NB:Du kan ikke kaste direkte til en int, da MSSQL runder værdien op, hvis du er forbi midt på dagen!)
Hvis der er en forskydning i dine data, kan du naturligvis tilføje eller trække dette fra resultatet
Du kan konvertere i den anden retning ved at kaste lige tilbage:
select cast(my_integer_date as datetime)
from mytable