Il tuo '1900-01-01'
non è deterministico perché dipende dalle impostazioni della lingua. ovviamente, questo non è ambiguo per le impostazioni DMY o MDY, in genere è ambiguo
Prova '19000101'
:SQL Server tratta le date e gli orari in modo alquanto strano:"aaaa-mm-gg" può essere trattato come "aaaa-gg-mm" se hai impostazioni britanniche nonostante sia in teoria ISO
Modifica:usa questo per rimuovere l'aspetto della data:DATEADD(day, 0, DATEDIFF(day, 0, [time]))
Edit2:1st Jan 1900 è zero nei formati datetime, quindi non è necessario sottrarlo. Puoi pubblicare dati di esempio e output per favore?