Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Dlaczego [data] + ([godzina]-[przesunięcie]) nie jest deterministyczny w programie SQL Server 2008?

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?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak mogę wykonać wyzwalacz PRZED AKTUALIZACJĄ z serwerem sql?

  2. Instrukcja Sql Case w Sql IN

  3. Znajdź ostatni wiersz w grupie według zapytania-SQL Server

  4. CONVERT() z przykładów daty/godziny na ciągi w SQL Server

  5. jak wyświetlić cały raport na jednej stronie za pomocą Konstruktora raportów?