Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Грешка при преобразуване при преобразуване на „nvarchar“ в „datetime“ в sql сървър

Има много формати, поддържани от SQL Server - вижте MSDN Books Online на CAST и CONVERT . Повечето от тези формати са зависими какви настройки имате - следователно тези настройки може да работят понякога - а понякога и не.

Начинът да разрешите това е да използвате (леко адаптиран) ISO-8601 формат за дата който се поддържа от SQL Server - този формат работи винаги - независимо от настройките за език и формат на датата на SQL Server.

ISO-8601 формат се поддържа от SQL Server, предлага се в два варианта:

  • YYYYMMDD само за дати (без времева част); забележка тук:без тирета! , това е много важно! YYYY-MM-DD еНЕ независимо от настройките за формат на дата във вашия SQL Server и НЕ работете във всички ситуации!

или:

  • YYYY-MM-DDTHH:MM:SS за дати и часове - обърнете внимание тук:този формат има тирета (но те могат бъде пропуснато) и фиксирано T като разделител между частта от датата и часа на вашия DATETIME .

Това е валидно за SQL Server 2000 и по-нови.

Ако използвате SQL Server 2008 или по-нов и DATE тип данни (само DATE -не DATETIME !), тогава наистина можете да използвате и YYYY-MM-DD формат и това също ще работи с всякакви настройки във вашия SQL Server.

Не ме питайте защо цялата тази тема е толкова сложна и донякъде объркваща - просто това е така. Но с YYYYMMDD формат, трябва да сте добре за всяка версия на SQL Server и за всяка настройка за език и формат на дата във вашия SQL Server.

Препоръката за SQL Server 2008 и по-нова версия е да се използва DATE ако имате нужда само от датата и DATETIME2(n) когато имате нужда и от дата, и от час. Трябва да се опитате да започнете да премахвате DATETIME тип данни, ако изобщо е възможно



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на глобална статична променлива в SQL Server?

  2. Научете се да извършвате анализ на продукти с пълнотекстово търсене на SQL Server. Част 2

  3. Как да добавите колона за идентичност към таблицата чрез TSQL и GUI в SQL Server - SQL Server / T-SQL урок, част 40

  4. Изтриване на свързани редове в релация много към много

  5. Върната стойност от съхранена процедура към c#