EDIT:Casta till en float/int fungerar inte längre i de senaste versionerna av SQL Server. Använd följande istället:
select datediff(day, '1899-12-30T00:00:00', my_date_field)
from mytable
Observera att strängdatumet bör vara i ett entydigt datumformat så att det inte påverkas av serverns regionala inställningar.
I äldre versioner av SQL Server kan du konvertera från ett DateTime till ett heltal genom att casta till en float och sedan till en int:
select cast(cast(my_date_field as float) as int)
from mytable
(OBS:Du kan inte kasta direkt till en int, eftersom MSSQL avrundar värdet uppåt om du har passerat mitt på dagen!)
Om det finns en offset i dina data kan du självklart lägga till eller subtrahera detta från resultatet
Du kan konvertera åt andra hållet genom att kasta rakt bakåt:
select cast(my_integer_date as datetime)
from mytable