Twój '1900-01-01'
jest niedeterministyczny, ponieważ zależy od ustawień języka. oczywiście jest to jednoznaczne dla ustawień DMY lub MDY, ale generalnie jest to niejednoznaczne
Wypróbuj '19000101'
:SQL Server traktuje daty i godziny nieco dziwnie:„rrrr-mm-dd” może być traktowane jako „rrrr-dd-mm”, jeśli masz ustawienia brytyjskie, mimo że teoretycznie jest to ISO
Edycja:użyj tego, aby usunąć aspekt daty:DATEADD(day, 0, DATEDIFF(day, 0, [time]))
Edit2:1st Jan 1900 to zero w formatach daty i godziny, więc nie ma potrzeby odejmowania tego. Czy możesz opublikować przykładowe dane i dane wyjściowe?