Spis treści:

Kategoria:SQL Server


Konwersja datetime na nvarchar

Data i jej reprezentacja tekstowa

Z wyświetlaniem i przetwarzaniem dat od zawsze był problem. Nie ma znaczenia, czy to C, Java, SQL, czy jakikolwiek inny dokument istniejący poza światem informatyki. Czy zapisywać ją z kropkami, myślnikami, ukośnikami? Czy najpierw umieszczać rok, czy najpierw dzień miesiąca. A może sam miesiąc na początku? Jak odczytać datę 01/02/03? Które to dzień, które miesiąc, które rok? Takie dyskusje można prowadzić w nieskończoność i pewnie do niczego nie doprowadzą. Najwyżej do potwierdzenia teorii, że gdzie dwie osoby, tam trzy różne zdania. Przyznam się, że niejednokrotnie musiałem szukać tej informacji i dobierać odpowiedni format. Dokumentacja MSDN jest tak obszerna, że odnajdywanie w niej potrzebnej informacji nie jest takie trywialne. Postanowiłem zrobić sobie pomocniczą tabelkę, która, mam nadzieję, przyda się także innym. W przykładach zastosowałem jednolite rzutowanie na typ nvarchar, ale o ile nie stosujemy kalendarza muzułmańskiego (Hijri), można stosować rzutowanie na typ varchar. Przy okazji polecam wpis na temat różnic pomiędzy varchar i nvarchar.

Tabela formatów daty

Przyjrzyjmy się zatem obiecanemu zestawieniu formatów, przykładowym wywołaniom i ich wynikowi, czyli reprezentacji tekstowej. Wszystkie wartości reprezentują dzień 17 lipca, 2013, godzinę 17:37, 46 sekund i 60 tysięcznych części sekundy.

FormatKod T-SQLRezultat
0CONVERT(nvarchar(30), GETDATE(), 0)Jul 17 2013 5:37PM
1CONVERT(nvarchar(30), GETDATE(), 1)07/17/13
2CONVERT(nvarchar(30), GETDATE(), 2)13.07.17
3CONVERT(nvarchar(30), GETDATE(), 3)17/07/13
4CONVERT(nvarchar(30), GETDATE(), 4)17.07.13
5CONVERT(nvarchar(30), GETDATE(), 5)17-07-13
6CONVERT(nvarchar(30), GETDATE(), 6)17 Jul 13
7CONVERT(nvarchar(30), GETDATE(), 7)Jul 17, 13
8CONVERT(nvarchar(30), GETDATE(), 8)17:37:46
9CONVERT(nvarchar(30), GETDATE(), 9)Jul 17 2013 5:37:46:060PM
10CONVERT(nvarchar(30), GETDATE(), 10)07-17-13
11CONVERT(nvarchar(30), GETDATE(), 11)13/07/17
12CONVERT(nvarchar(30), GETDATE(), 12)130717
13CONVERT(nvarchar(30), GETDATE(), 13)17 Jul 2013 17:37:46:060
14CONVERT(nvarchar(30), GETDATE(), 14)17:37:46:060
20CONVERT(nvarchar(30), GETDATE(), 20)2013-07-17 17:37:46
21CONVERT(nvarchar(30), GETDATE(), 21)2013-07-17 17:37:46.060
100CONVERT(nvarchar(30), GETDATE(), 100)Jul 17 2013 5:37PM
101CONVERT(nvarchar(30), GETDATE(), 101)07/17/2013
102CONVERT(nvarchar(30), GETDATE(), 102)2013.07.17
103CONVERT(nvarchar(30), GETDATE(), 103)17/07/2013
104CONVERT(nvarchar(30), GETDATE(), 104)17.07.2013
105CONVERT(nvarchar(30), GETDATE(), 105)17-07-2013
106CONVERT(nvarchar(30), GETDATE(), 106)17 Jul 2013
107CONVERT(nvarchar(30), GETDATE(), 107)Jul 17, 2013
108CONVERT(nvarchar(30), GETDATE(), 108)17:37:46
109CONVERT(nvarchar(30), GETDATE(), 109)Jul 17 2013 5:37:46:060PM
110CONVERT(nvarchar(30), GETDATE(), 110)07-17-2013
111CONVERT(nvarchar(30), GETDATE(), 111)2013/07/17
112CONVERT(nvarchar(30), GETDATE(), 112)20130717
113CONVERT(nvarchar(30), GETDATE(), 113)17 Jul 2013 17:37:46:060
114CONVERT(nvarchar(30), GETDATE(), 114)17:37:46:060
120CONVERT(nvarchar(30), GETDATE(), 120)2013-07-17 17:37:46
121CONVERT(nvarchar(30), GETDATE(), 121)2013-07-17 17:37:46.060
126CONVERT(nvarchar(30), GETDATE(), 126)2013-07-17T17:37:46.060
127CONVERT(nvarchar(30), GETDATE(), 127)2013-07-17T17:37:46.060
130CONVERT(nvarchar(30), GETDATE(), 130)10 رمضان 1434 5:37:46:060PM
131CONVERT(nvarchar(30), GETDATE(), 131)10/09/1434 5:37:46:060PM

Kategoria:SQL Server

, 2013-12-20

Brak komentarzy - bądź pierwszy

Dodaj komentarz
Wyślij
Ostatnie komentarze
Kalkulator, jak kalkulator, na pewno nie uwzględnia wielu rzeczy. Dla przykładu, jedziemy po asfalcie, ja na rowerze trial (14 kg, opony 29x2,6) a obok mnie kolega na szosie. Robimy te same kilometry w tym samym czasie i niby tyle samo wysiłku włożyliśmy? Druga kwestia, idę na owym rowerze pojeździć po lesie, podjazd, zjazd, piasek etc. To nie to samo co jazda po ścieżce.
Całkiem niezły kalkulator, porównując rezultaty z suunto 9 baro wartości są niemal identyczne z tymże byłoby jeszcze lepiej gdyby dodać prędkość wiatru i przewyższenia. Zdecydowanie najlepszy kalkulator w necie.
Super wyjasnione, czytalo sie bardzo lekko. Dzieki i pozdrawiam
puściłem benta i leci klockiem w pomieszczeniu, w którym kodujemy