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

Невъзможно е да се съхраняват определени формати за дата и час в SQL Server

SQL Server не съхранява DateTime във всеки формат на низ - съхранява се като 8-байтова числова стойност.

Различните настройки (език, формат на датата) влияят само на това как DateTime ви се показва в SQL Server Management Studio - или как се анализира, когато се опитате да конвертирате низ в DateTime .

Има много формати, поддържани от SQL Server - вижте MSDN Books Online на CAST и КОНВЕРТИРАНЕ . Повечето от тези формати са зависими какви настройки имате - следователно тези настройки може да работят понякога - а понякога и не.

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

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

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

или:

  • YYYY-MM-DDTHH:MM:SS за дати и часове - обърнете внимание тук:този формат има тирета.

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

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

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



  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. Внедряване на пейджинг с помощта на OFFSET FETCH NEXT в SQL Server

  3. Използване на LIKE в sp_executesql

  4. 3 начина да получите списък с бази данни в SQL Server (T-SQL)

  5. CAST(DATETIME КАТО ДАТА) над клаузата WHERE