DateTime je často reprezentován jako počet dnů od předem určeného data (obecně známého jako epocha) na celočíselné části a procento dne, který uplynul od půlnoci na zlomkové části.
SQL Server není výjimkou, takže převod na Float dává velký smysl. Den 0 je 1. leden 1900 00:00:00 (AFAIK, v žádném konkrétním časovém pásmu, takže jej budete považovat za „místní čas“).
Takže můžete zkusit toto:
declare @ADate DateTime;
set @ADate = '19000101 00:00:00';
select CONVERT(float, @ADate); --should print 0
set @ADate = '19000101 12:00:00';
select CONVERT(float, @ADate); --should print 0.5
set @ADate = '19001231 06:00:00';
select CONVERT(float, @ADate); --should print 364.25
Pro vaše výsledky tedy uplynulo 40 183 dní od 01.01.1900 00:00:00 a 01.07.2010 00:00:00
Upřesnění:Systémy podobné Unixu používají odlišný přístup k ukládání dat a časů:Sekundy od epochy Unixu (1. ledna 1970 00:00:00 UTC), která je známější jako čas epochy.
[Edit]Formát data v této odpovědi byl změněn na formát RRRRMMDD dne 20140416, po několika nových letech zkušeností s SQL Serverem (a jak řekl @Damien ve svém komentáři) je to jediný bezpečný formát.