Ilekroć pracujemy z bazami danych, okazuje się, że prawie każda tabela zawiera kolumnę Data. W końcu data danych odgrywa ważną rolę podczas ich analizy. Bardzo ważne jest przechowywanie dat w określonym lub zrozumiałym formacie. W tym artykule dowiemy się, jak określić format daty w SQL Server.
Stwórzmy naszą demonstracyjną bazę danych i tabelę.
lista Java do tablicy
Krok 1: Utwórz bazę danych
Użyj poniższego polecenia, aby utworzyć bazę danych.
Zapytanie:
CREATE DATABASE User_details;>
Krok 2: Skorzystaj z bazy danych
Zapytanie:
USE User_details;>
Krok 3: Definicja tabeli
W bazie danych mamy następującą tabelę GFG_user.
Zapytanie:
CREATE TABLE GFG_user(Id INT NOT NULL,Dt DATE, Address VARCHAR(100),Dt_FORMATTED AS (convert(varchar(255), dt, 104)), PRIMARY KEY (Id) );>
Wyjście:

Tutaj utworzyliśmy kolumnę o nazwie Dt_FORMATTED, w której zapiszemy naszą sformatowaną datę.
Teraz widzimy KONWERTOWAĆ() funkcjonować. Funkcja CONVERT() po prostu konwertuje wartość dowolnego typu na określony typ danych.
Składnia:
CONVERT ( data_type ( length ) , expression , style )>
Korzystając z tej funkcji, rzutujemy ciąg znaków na datę. W miejscu argumentu stylu wspomnieliśmy „104” . Jest to kod numeryczny określający format daty.
Sprawdź tę tabelę, aby zobaczyć różne kody używane dla różnych formatów:
Z wiekiem(yy) | Z wiekiem(yyyy) | Standard | Wejście wyjście |
| – | 0 lub 100 (1.2) | Wartość domyślna dla daty i godziny i mała data | pon. dd rrrr gg: miAM (lub PM) |
| 1 | 101 | NAS. | 1 = mm/dd/rr 101 = mm/dd/rrrr |
| 2 | 102 | ANSI | 2 = rr.mm.dd 102 = rrrr.mm.dd |
| 3 | 103 | Brytyjski/Francuski | 3 = dd/mm/rr 103 = dd/mm/rrrr |
| 4 | 104 | Niemiecki | 4 = dd.mm.rr 104 = dd.mm.rrrr |
| jedenaście | 111 | JAPONIA | 11 = rr/mm/dd 111 = rrrr/mm/dd |
| 12 | 112 | ISO | 12 = ymmdd 112 = rrrrmmdd |
| – | 13 lub 113 (1.2) | Wartość domyślna w Europie + milisekundy | dd mon rrrr gg:mi:ss:mmm (24h) |
| – | 131 (2) | Hidżry (5) | dd/mm/rrrr gg:mi:ss:mmmAM |
Tutaj wymieniliśmy tylko 10 najczęściej używanych formatów.
Krok 4: Wstaw wartości
Poniższe polecenie służy do wstawiania wartości do tabeli.
konwencja nazw Java
Zapytanie:
SET DATEFORMAT dmy; INSERT INTO GFG_user (Id, Dt, Address) VALUES ('1','23.11.2021', 'German');> 
W tym zapytaniu używamy the FORMAT DATY ustawienie.
Składnia:
SET DATEFORMAT format>
Kiedy wstawiamy ciąg znaków, serwer będzie próbował przekonwertować dotychczasowy ciąg przed wstawieniem go do tabeli. Ponieważ nie jest w stanie stwierdzić, czy umieszczamy miesiąc przed datą, czy datę przed miesiącem. Załóżmy na przykład, że próbujesz wstawić datę 06.07.2000. Serwer nie jest w stanie wykryć, czy jest to 6 lipca, czy 7 czerwca. Chociaż korzysta z ustawień lokalizacyjnych działającego konta użytkownika, aby dowiedzieć się, że pominięcie DATEFORMAT może spowodować błąd, ponieważ w większości przypadków konto, na którym przeprowadzana jest operacja, jest ustawione na format USA, to znaczy – Miesiąc Dzień Rok (mdy) .
Błąd powstał, ponieważ chcieliśmy zapisać go jako dmy , nie md . Jednak użycie DATEFORMAT pomoże Ci się go pozbyć.
Wyjście:

Skończyliśmy z naszą tabelą, teraz sprawdźmy, czy otrzymujemy pożądany wynik, czy nie.
Krok 5: Wyświetl dane tabeli
Zapytanie:
SELECT * FROM GFG_user;>
Wyjście:

Pomyślnie uzyskaliśmy datę w niemieckim formacie w kolumnie Dt_FORMATTED.
Inne podejście do wstawiania daty w bazie danych:
Datę możemy również wstawić za pomocą funkcji „to_date” w sql. Można zastosować następującą składnię:
TO_DATE([value], [format]);>
Format daty może być różnych typów, takich jak: 'Dd / mm / rrrr' , „rrrr-mm-dd” , „mm-dd-rrrr” .
Przykład:
CREATE TABLE GFG_INTERN (e_name VARCHAR(20), e_id number, joiningDate date); INSERT INTO GFG_INTERN VALUES ('FirstIntern', 001, to_date('2022-12-12','yyyy-mm-dd')); INSERT INTO GFG_INTERN VALUES ('SecondIntern', 002, to_date('2022-Dec-12','yyyy-mm-dd')); INSERT INTO GFG_INTERN VALUES ('ThirdIntern', 003, to_date('30-12-2022','dd-mm-yyyy')); INSERT INTO GFG_INTERN VALUES ('FourthIntern', 004, to_date('12-31-2022','mm-dd-yyyy')); SELECT * FROM GFG_INTERN;> 
polecenia sql
Wyjście:

Wyjście