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

Zmień domyślny format daty przechowywany w bazie danych

To jest sedno zamieszania. Tylko dlatego, że SQL Server Management Studio wyświetla kolumna daty i godziny w tym formacie nie oznacza, że ​​jest przechowywana jako TEKST RRRR-MM-DD gg:mm:ss.zzz. Jest przechowywany jako binarny, coś w rodzaju 0000101000001010..

Twoje daty są przechowywane w SQL Server jako seria bajtów (tak naprawdę bitów), które tworzą pewną wartość liczbową, która jest przesunięciem od 1900-01-01. Nie ma nieodłącznego formatu dat. Masz na myśli to, że SSMS domyślnie wyświetla kolumny daty i godziny w formacie RRRR-MM-DD gg:mm:ss.zzz. Jeśli używasz front-endowego narzędzia programistycznego, to również może narzucić domyślny format [wyświetlania], chyba że poprosiłeś o inny.

Nie ma absolutnie ŻADNEGO sposobu, aby SSMS wyświetlał dane daty i godziny w innym formacie za pomocą opcji lub konfiguracji. Jeśli musisz, musisz zaktualizować zapytanie SQL, aby przekonwertować kolumnę datetime na kolumnę VARCHAR zawierającą odpowiednik TEXTual w określonym formacie. Może to być przydatne w SSMS, ale byłoby złe, gdy byłoby używane jako źródło danych dla frontonu GUI/aplikacji internetowych – ponieważ wartości nie są datami i godzinami i nie mogą być używane do obliczania interwałów, tworzenia wykresów, kontrolek powiązanych z datą itp.

Zobacz ten przykład wyświetlania czasu (getdate()) jako RRRR-DD-MM, bardzo nietypowy format. Zwróć uwagę, że pole/zmienna daty musi być użyta dwukrotnie:

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. Edytuj wiersze / rekordy tabeli w SQL Server Management Studio (SSMS) — samouczek SQL Server / samouczek TSQL, część 18

  2. Przetwarzaj ciąg znaków oddzielonych przecinkami, aby utworzyć IN Lista ciągów w klauzuli Where

  3. Jak znaleźć wszystkie wystąpienia określonego tekstu we wszystkich procedurach składowanych w mojej bazie danych?

  4. Zakleszczenie podczas SELECT/UPDATE

  5. Kursor SQL w zawartości dynamicznej