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

Функция за форматиране на датата на SQL Server

В SQL Server типът данни DATETIME се съхранява като 2 4-байтови цели числа, така че като такъв няма конкретно форматиране като това.

Ако искате да върнете датата в конкретен формат, трябва да я КОНВЕРИРАТЕ в VARCHAR с посочен подходящ идентификатор на формат.

Ако имате дата и час във VARCHAR и искате да я съхраните в поле DATETIME в SQL Server, тогава трябва да сте сигурни, че предавате тази стойност на SQL във формат, който винаги ще бъде безопасно интерпретиран. напр. Форматът дд/мм/ГГГГ не е безопасен, тъй като в зависимост от настройките може да се третира като мм/дд/гггг, когато влезе. Безопасните формати са:

yyyyMMdd
yyyy-MM-ddThh:mi:ss.mmm

напр.

INSERT MyTable (DateField) VALUES ('01/10/2010') -- dd/MM/yyyy not safe
INSERT MyTable (DateField) VALUES ('20101001') -- yyyyMMdd safe

Актуализация:
Когато ИЗБЕРЕТЕ поле DATETIME (GETDATE(), поле, променлива....), това, което виждате в SSMS, е форматирана стойност, тъй като това е полезно за вас, вместо да показва действителното вътрешно 8-байтово представяне .



  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. Как да получа списък с всички таблици в база данни с помощта на TSQL?

  3. Как да разширя стойностите, разделени със запетая, в отделни редове, използвайки SQL Server 2005?

  4. Съставен първичен ключ срещу допълнителен идентификационен номер колона?

  5. В SQL Server, как мога да намеря навсякъде, където има препратка към колона?