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

Променете формата на датата по подразбиране, съхранен в база данни

Това е същината на объркването. Просто защото SQL Server Management Studio показва колона за дата и час в този формат не означава, че се съхранява КАТО ТЕКСТ ГГГГ-ММ-ДД чч:мм:сс.zzz. Той се съхранява като двоичен, нещо като 0000101000001010..

Вашите дати се съхраняват в SQL Server като поредица от байтове (битове всъщност), които съставляват някаква числова стойност, която е отместване от 1900-01-01. Няма присъщ формат на датите. Това, което имате предвид, е, че SSMS по подразбиране показва [дисплей] колони за дата и час като ГГГГ-ММ-ДД чч:мм:сс.zzz. Ако използвате инструмент за програмиране отпред, това също може да наложи формат по подразбиране [показване], освен ако не сте поискали друг.

НЯМА абсолютно НИКАКЪВ начин да накарате SSMS да показва данни за дата и час в друг формат чрез опции или конфигурация. Ако трябва, ще трябва да актуализирате SQL заявката, за да преобразувате колоната за дата и час в колона VARCHAR, съдържаща еквивалента на TEXTual в определен формат. Това може да е полезно в SSMS, но би било лошо, когато се използва като източник на данни за GUI/уеб приложения отпред - тъй като стойностите не са дата-час и не могат да се използват за изчисляване на интервали, графики, контроли за обвързване с дата и т.н.

Вижте този пример за показване на време (getdate()) като ГГГГ-ДД-ММ, много необичаен формат. Забележете, че полето/променливата за дата трябва да се използва два пъти:

select stuff(convert(char(7), getdate(), 120), 5, 0, '-' + convert(char(2), getdate(), 3))


  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 2008

  2. ST Съдържа колона География

  3. Как да напиша квантилната агрегатна функция?

  4. Индекс на пълния текст на SQL Server

  5. ВЪВЕТЕ СТОЙНОСТИ, КЪДЕТО НЕ СЪЩЕСТВУВА