sql >> Database >  >> RDS >> Sqlserver

Wijzig de standaard datumnotatie die is opgeslagen in een database

Dat is de kern van de verwarring. Gewoon omdat SQL Server Management Studio weergeeft een datetime-kolom in dat formaat betekent niet dat deze is opgeslagen ALS TEKST JJJJ-MM-DD uu:mm:ss.zzz. Het wordt opgeslagen als binair, zoiets als 0000101000001010..

Uw datums worden in SQL Server opgeslagen als een reeks bytes (eigenlijk bits) die een numerieke waarde vormen die een afwijking is van 1900-01-01. Er is geen inherent formaat voor de datums. Waar u naar verwijst, is dat SSMS standaard [display] datetime-kolommen toont als JJJJ-MM-DD uu:mm:ss.zzz. Als je een front-end programmeertool gebruikt, kan dat ook een standaard [display]-formaat opleggen, tenzij je om een ​​ander hebt gevraagd.

Er is absoluut GEEN manier om SSMS datetime-gegevens in een ander formaat te laten weergeven via opties of configuratie. Als het moet, moet u de SQL-query bijwerken om de datetime-kolom te converteren naar een VARCHAR-kolom die het TEXTual-equivalent in een bepaalde indeling bevat. Dat kan handig zijn in SSMS, maar zou slecht zijn als het wordt gebruikt als een gegevensbron voor front-end GUI/web-apps - aangezien de waarden geen datetime zijn en niet kunnen worden gebruikt voor intervalberekening, grafieken, gebonden aan datumbesturingselementen enz.

Zie dit voorbeeld van het weergeven van tijd (getdate()) als JJJJ-DD-MM, een zeer ongebruikelijk formaat. Merk op dat het datumveld/de variabele twee keer moet worden gebruikt:

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


  1. ontsnappen aan vierkante haken in PATINDEX met SQL Server

  2. sql selecteer elke maand top 5

  3. FOUT:kan de native extensie van de gem niet bouwen - Fout bij het installeren van mysql2

  4. Kan postgres-gebruiker niet gebruiken in nieuwe database voor rails 3 op ubuntu 10.04-server