logo

Ako určiť formát dátumu pri vytváraní tabuľky a vyplniť ju v SQL?

Kedykoľvek pracujeme s databázami, zistíme, že takmer každá jedna tabuľka obsahuje stĺpec Dátum. Koniec koncov, dátum údajov hrá dôležitú úlohu pri ich analýze. Ukladanie dátumov v špecifickom alebo zrozumiteľnom formáte je veľmi dôležité. V tomto článku sa dozvieme, ako môžeme určiť formát dátumu na serveri SQL Server.

Vytvorme našu demo databázu a tabuľku.



Krok 1: Vytvorte databázu

Na vytvorenie databázy použite nasledujúci príkaz.

Dopyt:



CREATE DATABASE User_details;>

Krok 2: Použite databázu

konverzia dátumu na reťazec

Dopyt:

USE User_details;>

Krok 3: Definícia tabuľky



V databáze máme nasledujúcu tabuľku GFG_user.

Dopyt:

CREATE TABLE GFG_user(Id INT NOT NULL,Dt DATE, Address VARCHAR(100),Dt_FORMATTED AS (convert(varchar(255), dt, 104)), PRIMARY KEY (Id) );>

Výkon:

Tu sme vytvorili stĺpec s názvom Dt_FORMATTED, do ktorého uložíme náš formátovaný dátum.

Teraz vidíme, KONVERTOVAŤ() funkciu. Funkcia CONVERT() jednoducho skonvertuje hodnotu ľubovoľného typu na určený dátový typ.

Syntax:

CONVERT ( data_type ( length ) , expression , style )>

Pomocou tejto funkcie prenesieme reťazec na dátum. Na mieste argumentácie štýlu sme spomenuli '104' . Je to číselný kód na určenie formátu dátumu.

V tejto tabuľke nájdete rôzne kódy používané pre rôzne formáty:

So storočím

(yy)

So storočím

(yyyy)

Štandardné

Vstup výstup

0 alebo 100 (1.2)

Predvolené pre dátum a čas

a malý dátum a čas

po dd yyy hh:

miAM (alebo PM)

1 101 U.S.

1 = mm/dd/rr

101 = mm/dd/rrrr

2 102 ANSI

2 = rr.mm.dd

102 = rrrr.mm.dd

3 103 Britská/francúzska

3 = dd/mm/rr

103 = dd/mm/rrrr

4 104 nemecký

4 = dd.mm.rr

104 = dd.mm.rrrr

jedenásť 111 JAPONSKO

11 = rr/mm/dd

111 = rrrr/mm/dd

12 112 ISO

12 = ymmdd

112 = rrrrmmdd

13 alebo 113 (1.2) Európa predvolená + milisekundy dd mon yyyy hh:mi:ss:mmm (24h)
131 (2) hidžra (5) dd/mm/rrrr hh:mi:ss:mmmAM

Tu sme spomenuli iba 10 najpoužívanejších formátov.

Krok 4: Vložte hodnoty

Nasledujúci príkaz slúži na vloženie hodnôt do tabuľky.

java cast int do reťazca

Dopyt:

SET DATEFORMAT dmy; INSERT INTO GFG_user (Id, Dt, Address) VALUES ('1','23.11.2021', 'German');>

V tomto dotaze používame a FORMÁT DÁTUMU nastavenie.

Syntax:

SET DATEFORMAT format>

Keď vkladáme reťazec, server sa pokúsi skonvertovať reťazec na dátum pred vložením do tabuľky. Keďže nedokáže povedať, či uvádzame mesiac pred dátum alebo dátum pred mesiac. Predpokladajme napríklad, že sa pokúšate vložiť 06.07.2000. Server nedokáže zistiť, či je dátum 6. júla alebo je 7. júna. Aj keď používa nastavenia lokalizácie používateľského účtu, ktorý je v prevádzke, aby zistil, že ak neuvediete FORMÁT DÁTUMU, môže vám spôsobiť chybu, pretože väčšinou je účet, na ktorom je spustená operácia, nastavený na formát USA, to znamená – Mesiac Deň Rok (mdy) .

Chyba bola spôsobená, pretože sme ju chceli uložiť ako dmy , nie mdy . Použitie DATEFORMAT vám však pomôže zbaviť sa ho.

Výkon:

S našou tabuľkou sme hotoví, teraz skontrolujeme, či dostávame požadovaný výstup alebo nie.

Krok 5: Zobraziť údaje tabuľky

Dopyt:

SELECT * FROM GFG_user;>

Výkon:

Úspešne sme získali náš nemecký formát Dátum v stĺpci Dt_FORMATTED.

Ďalší spôsob vloženia dátumu do databázy:

Môžeme tiež vložiť dátum pomocou funkcie „to_date“ v sql. Je možné použiť nasledujúcu syntax:

TO_DATE([value], [format]);>

Formát dátumu môže byť rôznych typov, napríklad: „dd-mm-yyyy“ , „rrrr-mm-dd“ , „mm-dd-yyyy“ .

Príklad:

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;>

sql príkazy

Výkon:

Výkon