Denne opplæringen vil dekke det grunnleggende om å jobbe med tidsstempel datatype i MySQL.
Timestamp-datatypen lar deg lagre dato- og tidsverdier i formatet for tidsstempel som YYYY-MM-DD HH: MM: SS.
Verdien av en tidsstempel datatype i MySQL varierer fra 1970-01-01 00:00:01 til 2038-01-19 03:14:07 i UTC.
Når du lagrer en tidsstempelverdi, vil MySQL konvertere gjeldende tid til UTC og lagre den i måltabellen. MySQL vil konvertere verdien fra UTC til gjeldende tid under henting. Det er godt å huske at denne funksjonen bare gjelder datatypen for tidsstempel.
Derfor, siden tidssonen kan settes på en gitt økt, lar SQL deg hente den samme verdien som er lagret så lenge tidssonen forblir konstant.
MySQL Timezone -eksempel
La oss dekke et eksempel på hvordan vi jobber med tidsstempel -datatypen i MySQL. Tenk på tabellen nedenfor med en tidsstempelkolonne.
opprette database tempdb;
Bruk tempdb;
Lag tabellprøve (
id int auto_increment primærnøkkel,
T tidsstempel
);
Sett Time_zone = '+03:00';
Spørringen over oppretter en eksempeldatabase og tabell med en tidsstempelkolonne. Vi setter også tidssonen for økten ved hjelp av TIME_ZONE -parameteren.
Vi kan deretter sette inn dato- og tidsverdier i kolonnen som vist i spørringen nedenfor:
Sett inn i prøven (t)
Verdier ('2022-10-10 23:45:23'),
('2020-12-10 13:43:32'),
('1990-10-10 16:23:32');
Vi kan deretter velge tidsstempelverdiene fra tabellen som vist:
Velg * fra prøven;
Resultat:
Demonstrere bruken av tidssone i tidsstempel
Som nevnt, hvis tidssonen er konstant, kan vi få den samme verdien vi lagret i tabellen, som demonstrert ovenfor.
La oss se hvilke verdier vi får hvis vi endrer tidssoneverdien:
Sett TIME_ZONE = '-7: 00';
Velg * fra prøven;
Hvis vi kjører uttalelsen over, bør vi få en tabell med verdien som vist:
Legg merke til at vi får forskjellige verdier fra hva vi lagret. Dette skjer på grunn av endringen i tidssonen.
Ved hjelp av automatisk initialisering ved bruk av tidsstempel -datatypen
Vi kan automatisk initialisere en gitt kolonne ved å sette standardbegrensningen til Current_Timestamp.
I slike tilfelle vil MySQL sette inn gjeldende tidsstempelverdi til en gitt rad, som vist i eksemplet nedenfor:
Lag tabellprøve (
id int auto_increment primærnøkkel,
T TIMESTAMP Standard Current_Timestamp
);
Vi kan deretter sette inn verdier i tabellen som vist:
Sett inn i prøven (ID)
verdier (1), (2), (3);
Som du kan legge merke til, sørger vi ikke for T -kolonnen. Dette skal tvinge MySQL til å bruke standardverdien som vist:
Velg * fra prøven;
Produksjon:
Som du ser, deler alle rader den samme tidsstempelverdien som betegner innsatsen. Denne funksjonen blir referert til som automatisk initialisering.
Konklusjon
I dette eksemplet diskuterte vi grunnleggende om å jobbe med tidsstempel -datatypen i MySQL.