EDIT:Casten naar een float/int werkt niet meer in recente versies van SQL Server. Gebruik in plaats daarvan het volgende:
select datediff(day, '1899-12-30T00:00:00', my_date_field)
from mytable
Houd er rekening mee dat de tekenreeksdatum een ondubbelzinnige datumnotatie moet hebben, zodat deze niet wordt beïnvloed door de regionale instellingen van uw server.
In oudere versies van SQL Server kunt u een DateTime naar een geheel getal converteren door te casten naar een float en vervolgens naar een int:
select cast(cast(my_date_field as float) as int)
from mytable
(NB:je kunt niet rechtstreeks naar een int casten, aangezien MSSQL de waarde naar boven afrondt als je na de middag bent!)
Als er een verschuiving in uw gegevens is, kunt u deze uiteraard optellen of aftrekken van het resultaat
Je kunt in de andere richting converteren door recht terug te werpen:
select cast(my_integer_date as datetime)
from mytable