logo

Jak określić format daty podczas tworzenia tabeli i wypełnić ją w SQL?

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