Arbeider med MySQL-MariADB Dato og tid

Arbeider med MySQL-MariADB Dato og tid
I denne artikkelen skal jeg vise deg hvordan du jobber med MySQL/MariaDB -dato, tid og datatids datatyper. Så la oss komme i gang.

Forutsetninger:

Du må ha MySQL eller MariaDB installert på Linux OS (i.e. Centos/RHEL, Ubuntu/Debian). Hvis du trenger hjelp til å installere MySQL/MariaDB, er det mange artikler om Linuxhint.com som du kan sjekke.

Opprette dummybord og rader:

Jeg vil bruke en fødselsdag Tabell for å demonstrere hvordan du skal jobbe med datatyper for dato og klokkeslett i denne artikkelen. Bursdagsbordet har en Navn Typefelt VARCHAR, en Dato Typefelt DATO og a tid Typefelt TID.

Du kan opprette fødselsdag Tabell som følger.

> Lag bord bursdag (
Navn varchar (20) ikke null,
Dato dato,
tid
);

Hvis du vil at MySQL/MariaDB automatisk skal legge til gjeldende dato eller gjeldende tid mens du setter inn nye rader i fødselsdag tabell, du kan opprette fødselsdag Tabell som følger.

> Lag bord bursdag (
Navn varchar (20) ikke null,
Dato Dato Standard Current_Date,
Tidstid Standard gjeldende_tid
);

Her, Standard Current_Date Legger automatisk gjeldende dato i Dato Colum hvis det ikke er gitt data for den kolonnen mens du har innsetting. Den samme veien Standard gjeldende_tid Legger automatisk gjeldende tid til tid kolonne.

Arbeider med dato:

Du kan skrive ut gjeldende dato med DAGENS DATO() funksjon som følger:

> Velg Current_Date ();

Hvis 'Bob' ble født i dag, kan du legge til 'Bob' i fødselsdag Tabell som følger:

> Sett inn i bursdag (navn, dato) verdier ('bob', current_date ());

Du kan også legge til spesifikke fødselsdatoer som følger:

> Sett inn bursdag (navn, dato) verdier ('Lily', '1997-11-24');
> Sett inn i bursdag (navn, dato) verdier ('Alex', '2001-11-24');

Den nåværende tilstanden på bursdagsbordet er som følger.

Du kan bare hente ut året som er en del av datoen ved å bruke ÅR() funksjon, måneddelen ved å bruke MÅNED() funksjon, dagsdelen ved å bruke DAG() funksjon som følger:

> Velg navn, år (dato), måned (dato), dag (dato) fra bursdag;

Du kan finne månedens navn på en dato ved hjelp av Månednavn () funksjon.

> Velg navn, dato, månednavn (dato) fra bursdag;

1 år er lik 52 uker. Du kan finne årets uke ved å bruke Weekofyear () funksjon som følger:

> Velg navn, dato, weekofyear (dato) fra bursdag;

På samme måte kan du få dagen i året ved å bruke DayOfyear () funksjon. 1 år er lik 365 dager. 366 dager i et sprangår.

> Velg navn, dato, DayOfyear (dato) fra bursdagen;

Du kan finne ukedagen fra en date ved hjelp av Ukedag () funksjon.

> Velg navn, dato, ukedag (dato) fra bursdag;

Her er 0 mandag, 1 er tirsdag, 2 er onsdag, 3 er torsdag, 4 er fredag, 5 er lørdag og 6 er søndag.

Du kan også finne ukedagsnavnet ved å bruke Dagnavn () funksjon.

> Velg navn, dato, dagnavn (dato) fra bursdag;

Jobber med tiden:

Du kan finne den nåværende systemtiden ved å bruke NÅVÆRENDE TID() funksjon som følger.

> Velg Current_time ();

Tidskolonnen i vår fødselsdag Tabellen er null på dette tidspunktet.

> Velg * fra bursdag;

La oss legge til noen dummy tidsverdier til tid kolonne.

> Oppdater bursdagssett tid = "21:14:32" Where Name = "Bob";
> Oppdater bursdagssett tid = "11:20:30" Where Name = "Lily";
> Oppdater bursdagssett tid = "8:10:15" Where Name = "Alex";

Nå, den fødselsdag Tabellen skal se ut som dette.

> Velg * fra bursdag;

Du kan finne tiden på tiden ved å bruke TIME() funksjon, i det øyeblikket som bruker MINUTT() funksjon, og den andre ved hjelp av SEKUND() funksjon som følger:

> Velg navn, time (tid), minutt (tid), andre (tid) fra bursdagen;

Arbeider med dato og tid:

Tidligere har jeg lagret dato og klokkeslett i forskjellige felt av fødselsdag bord. Det er upraktisk. Hvis du trenger å lagre dato- og klokkeslettinformasjonen, bør du bruke DATO TID data-type.

Du kan opprette et nytt bursdagsbord Bursdag2 Som bruker datatetypen som følger:

> Lag tabell bursdag2 (
Navn varchar (20) ikke null,
DT DateTime
);

Nå importerer du data fra fødselsdag bord til Bursdag2 Tabell som følger:

> Sett inn i bursdag2 Velg navn,
Concat (dato, ", tid) som DT fra bursdag;

Slik Bursdag2 Tabellen skal se ut på dette punktet.

> Velg * fra bursdag2;

Du kan konvertere datetiden til sekunder (tidsstempel) ved hjelp av To_seconds () funksjon som følger:

> Velg Navn, To_Seconds (DT) fra Birthday2;

Alle funksjonene jeg har brukt i Jobber med dato og Jobber med tiden Deler av denne artikkelen vil også fungere på datetimefelt.

Legge til og trekke fra datoer:

Du kan legge til og trekke fra datoer i MySQL/MariaDB.

De Date_add () funksjon brukes til å legge til datoen og Date_sub () Funksjon brukes til å trekke fra datoen. Fomaten til Date_add () og Date_sub () er det samme.

Formatet til Date_add () funksjon:

Date_add (dt, intervall expr -enhet)

Formatet til Date_sub () funksjon:

Dato_sub (DT, Interval Expr -enhet)

Her, Intervall er et nøkkelord.

dt er den DATO, TID eller DATO TID som du vil legge til eller trekke fra fra.

enhet kan være ÅR, MÅNED, DAG, UKE, TIME, MINUTT, SEKUND.

expr er en numerisk kvanitet av de definerte enhet.

For eksempel kan du legge til et år til datoen ved hjelp av Date_add () funksjon som følger:

> Velg Navn, DT, Date_add (DT, Intervall 1 år) fra Birthday2;

På samme måte kan du trekke fra en måned ved å bruke Date_sub () funksjon som følger:

> Velg Navn, DT, Date_Sub (DT, Intervall 1 måned) fra Birthday2;

Finne forskjellen mellom to datoer:

Du kan finne forskjellen mellom to datoer ved å bruke Timestampdiff () funksjon.

Formatet til Timestampdiff () funksjon er:

Timestampdiff (enhet, DT1, DT2)

Her, dt1 og dt2 kan være av type DATO eller DATO TID.

De Timestampdiff () Funksjonen returnerer (dt2 - dt1) i det definerte enhet.

De enhet kan være ÅR, MÅNED, DAG, UKE, TIME, MINUTT, SEKUND.

Du kan finne alderen (i sekunder) til hver person i bursdagsbordet som følger:

> Velg Navn, Current_Timestamp (), DT, Timestampdiff (andre,
dt, current_timestamp ()) som alder_sekunder fra bursdag2;

På samme måte kan du finne alderen i dager som følger:

> Velg Navn, Current_Timestamp (), DT, TimesTampdiff (dag,
dt, current_timestamp ()) som alder_dager fra bursdag2;

Du kan også finne alderen i år som følger:

> Velg navn, Current_Timestamp (), DT, TimesTampdiff (år, DT,
Current_timestamp ()) som alder_år fra bursdag2;

Så det er i utgangspunktet slik du jobber med MySQL/MariaDB -dato og tid. Takk for at du leste denne artikkelen.