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

Błąd konwersji podczas konwersji „nvarchar” na „datetime” w serwerze sql

Istnieje wiele formatów obsługiwanych przez program SQL Server — zobacz MSDN Books Online na CAST i CONVERT . Większość z tych formatów jest zależna jakie masz ustawienia — dlatego te ustawienia mogą czasami działać — a czasami nie.

Sposobem na rozwiązanie tego problemu jest użycie (nieznacznie dostosowanego) formatu daty ISO-8601 który jest obsługiwany przez SQL Server - ten format działa zawsze - niezależnie od ustawień języka SQL Server i formatu daty.

format ISO-8601 jest obsługiwany przez SQL Server jest dostępny w dwóch wersjach:

  • YYYYMMDD tylko dla dat (bez części czasu); uwaga tutaj:bez myślników! , to bardzo ważne! YYYY-MM-DD jest NIE niezależnie od ustawień formatu daty na serwerze SQL Server i NIE pracuj we wszystkich sytuacjach!

lub:

  • YYYY-MM-DDTHH:MM:SS dla dat i godzin – uwaga tutaj:ten format ma myślniki (ale mogą należy pominąć) i stałe T jako ogranicznik między częścią daty i godziny w DATETIME .

Dotyczy to SQL Server 2000 i nowszych.

Jeśli używasz SQL Server 2008 lub nowszego i DATE typ danych (tylko DATE - nie DATETIME !), to rzeczywiście możesz również użyć YYYY-MM-DD format i będzie działać również z dowolnymi ustawieniami na serwerze SQL.

Nie pytaj mnie, dlaczego cały ten temat jest tak zawiły i nieco zagmatwany – tak po prostu jest. Ale z YYYYMMDD format, powinieneś być w porządku dla dowolnej wersji SQL Server oraz dla dowolnego języka i ustawienia formatu daty w twoim SQL Server.

Rekomendacją dla SQL Server 2008 i nowszych jest użycie DATE jeśli potrzebujesz tylko części daty i DATETIME2(n) kiedy potrzebujesz zarówno daty, jak i godziny. Powinieneś spróbować wycofywać DATETIME typ danych, jeśli to możliwe



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Obcinanie VARCHAR(MAX) SQLAlchemy

  2. Wstaw do tabeli zmienną ze złączem

  3. Filtrowanie JOIN:GDZIE vs. ON

  4. Indeks wznowień programu SQL Server:Czy to jest dla Ciebie dobre?

  5. Konfiguracje w zakresie bazy danych SQL Server i automatyczna korekta planu