Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Perché [data] + ([ora] - [offset]) non è deterministico in SQL Server 2008?

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?