sql >> Databasteknik >  >> RDS >> Mysql

MySQL-datumformat – vad du behöver veta

MySQL kommer från "My" - medgrundarens dotter och SQL-Structured Query Language. Det är en öppen källkodstyp av relationsdatabashanteringssystem. Detta relationsdatabassystem hjälper till att organisera data i relaterbara tabeller, vilket möjliggör strukturella relationer mellan olika datamängder.

MySQL-datum är en av de temporala datatyperna som kan hantera datavärden tillsammans med andra datatyper som numeriska datatyper, strängdatatyper, booleska datatyper, datum och tid och rumsliga datatyper.

Funktionen DATE_FORMAT() används i MySQL för att formatera datum med det angivna formatvärdet. Till exempel, om ett datum anges, kommer funktionen att formatera det för de angivna parametrarna.

MySQL-datumformatsyntax

DATE_FORMAT(datum, format)

Syntaxfunktionen ovan accepterar två parametrar som visas nedan:

  • datum – Det anger datumet som ska formateras
  • format – Det definierar formatet som ska användas för att formatera datumet

Nedan finns en lista över format som du bör bekanta dig med när du hanterar datumfunktionen.

  • %a – detta format visar veckodagens namn. det är begränsat från söndag till lördag.
  • %b – denna formatsymbol visar månadens namn. den är begränsad från januari till december.
  • %c – denna formatsymbol indikerar månadens numeriska namn. den är begränsad från 0 till 12
  • %D – den här formatsymbolen visar det numeriska värdet för dagen i månaden följt av ett suffix som 1:a eller 2:a.
  • %e – denna formatsymbol visar det numeriska värdet för dagen i månaden. den är begränsad från 0 till 31
  • %f – den här formatsymbolen visar mikrosekunder. den är begränsad från 000000 till 999999.
  • %H – denna formatsymbol indikerar timmen. Den är begränsad från 00 till 23.
  • %i – denna formatsymbol visar minuterna. den är begränsad från 00 till 59.
  • %j – denna formatsymbol visar dagen på året. den är begränsad från 001 till 366.
  • %M – denna formatsymbol anger månadens namn. den är begränsad från januari till december
  • %p – den här formatsymbolen visar PM eller AM
  • %S – denna formatsymbol visar sekunder. den är begränsad från 00 till 59
  • %U – denna formatsymbol visar vardagar där söndag är den första dagen. Den är begränsad från 00 till 53.
  • %W – denna formatsymbol visar veckodagarna från söndag till lördag
  • %Y – denna formatsymbol visar årets numeriska värde som ett 4-siffrigt tal

Formaten som anges ovan returnerar ett formaterat datum.

Exempel 1: 

För att extrahera eller visa året från det aktuella datumet, kör vi följande kommandorad:

VÄLJ DATUM_FORMAT("2021-09-25", "%Y");
Utdata:
Exempel 2:

Extrahera månadsnamn från ett givet datum enligt nedan:

2021-09-25

VÄLJ DATUM_FORMAT("2021-09-25", "%M");
Utdata:
Exempel 3:

Extrahera timmar och minuter från datumet nedan:

2021-09-25

VÄLJ DATUM_FORMAT("2021-09-25 10:20:23", "%H %i");
Utdata:
Exempel 4: 

Extrahera dagen i månaden numeriskt från det datum som anges nedan:

2021-09-25

VÄLJ DATUM_FORMAT("2021-09-25", "%D");
Utdata:
Exempel 5:

Extrahera månad, dag respektive år från det datum som anges här:

2021-09-25

VÄLJ DATUM_FORMAT("2021-09-25", "%M %d %Y");
Utdata:

MySQL date använder formatet; åååå-mm-dd för att lagra ett datavärde, och detta format är vanligtvis fixat utan tillstånd att ändra det alls. För lagringskraven för MySQL, för att lagra ett enda datumvärde, skulle det använda cirka 3 byte och har ett datumvärde som sträcker sig från 1000-01-01 till 9999-12-31. Därför är en användare som behöver lagra ett datumintervall utanför dessa parametrar endast möjlig genom heltal. Den här processen är dock ganska påfrestande, och det skulle kräva att du skapar tre kolumner, en för året, en annan för månaden och den sista för dagen.

Detta rekommenderas ofta inte att prova vid de flesta tillfällen om du vill ändra datumformatet. Om du inaktiverar det "strikta läget" kommer alla ogiltiga datum att konverteras till "noll datumvärde." Ett ogiltigt datum i det här fallet skulle inte följa standard MySQL-datumformat, till exempel 2020-01-24. Detta skulle också skapa ett behov av att utveckla "lagrade funktioner", som skulle återskapa MySQL:s nyskapade datumfunktioner.

MySQL-datumvärden med tvåsiffriga årtal

MySQL accepterar endast tvåsiffriga årtal under följande villkor:

  1. Årsvärden mellan 00-69 konverteras till 2000-2069
  2. Årsvärden mellan 70-79 konverteras till 1970-1999

Det är dock tillrådligt att undvika att använda datumvärden med två siffror eftersom det är tvetydigt.
Här är ett exempel. En tabell skapas med namnet "personer" och har kolumner för "datatyper":

SKAPA TABELL OM INTE FINNS personer ( JOB_ID heltal INTE NULL UNIK PRIMÄRNYCKEL, JOB_TITLE varchar(35) NOT NULL DEFAULT ' ', MIN_LÖN decimal(6,0) DEFAULT 8000, MAX_LÖN decimal(6,0)ENGFAULT =InnoDB;

Följande funktion kommer att "infoga en rad" i tabellen "personer":

INSERT INTO people(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
VÄRDEN('5', 'Foss', '2000', '2000');

Nu "Fråga informationen" från "personer"-tabellen

VÄLJ * FRÅN personer;

Efter att ha kört kommandona ovan kommer det nu att vara möjligt att använda alternativet för 2-siffrig årsformat för att infoga data i tabellen "personer":

INSERT INTO people(JOB_ID,JOB_TITLE,MIN_LÖN,MAX_LÖN,FÖDELSE)
VÄRDEN('6', 'FOSSLINUX', '200', '2000', '01-09-01');

"01" har använts i den första raden som årtal och ligger mellan (intervallet 00-69). MySQL kommer sedan att konvertera det till 2001, medan i den andra raden faller användningen av "84" i intervallet (70-99), och MySQL konverterar det till 1984.

MySQL-datumfunktioner

MySQL tillhandahåller och använder ofta flera datumfunktioner, vilket hjälper användare att manipulera sin data mer effektivt och snabbare.
Om du till exempel använder funktionen 'NU( )' kan du hämta aktuellt datum och tid:

VÄLJ NU( );

För att bara få datumdelen av en 'DATETIME', använd endast 'DATE( )'-funktionen:

VÄLJ DATUM(NU( ) );

För att få aktuellt systemdatum, använd CURDATE ( ):

SELECT CURDATE();

Funktionen 'DATE_FORMAT' kan användas för att formatera datumvärdet till detta format; mm/dd/åååå. Den använder datumformatmönstret %m/%d/%Y

SELECT DATE_FORMAT('2021-09-25 22:23:00', '%W %D %M %Y');

Om du vill beräkna antalet dagar mellan två datumvärden, använd funktionen 'DATEDIFF':

mysql> VÄLJ DATUMDIFF('2020-09-25', '2021-09-25') dagar;

Att använda funktionen 'DATE_ADD' hjälper en att lägga till flera år, månader, veckor eller dagar:

SELECT DATE_ADD('2021-09-25', INTERVAL 31 DAY);

Funktionen 'DATE_SUB' kan också användas för att subtrahera ett datumintervall:

SELECT DATE_SUB("2021-09-25", INTERVAL 10 DAY);

Genom att använda motsvarande funktion vad gäller datum, månad, kvartal och år kommer du att få exakt dag, månad, etcetera för ett datumvärde enligt nedan:

SELECT DAY('2000-12-31') day,
MONTH( '2000-12-31') month
QUARTER('2000-12-31') quarter,
ÅR('2000-12-31') år

Dag ǀ månad ǀ kvartal ǀ år ǀ
31 ǀ 12 ǀ 4 ǀ 2000ǀ

Veckoinformation om relaterade funktioner kan nås via:

VÄLJ
WEEKDAY('2000-12-31') veckodag,
WEEK( '2000-12-31') vecka,
WEEKOFTHEYEAR('2000-12-31') vecka i året;

veckodag ǀ vecka ǀ vecka i året ǀ
6 ǀ 53 ǀ 52 ǀ

Veckofunktionen returnerar alltid ett veckonummer med ett nollbaserat index. Du måste skicka ett andra argument eller skicka en "0" för att förhindra att detta händer. Om du klarar "1" returneras veckonummer "1-indexerad".

WEEKDAY('2000-12-31') weekday,
WEEK( '2000-12-31', 1) week,
WEEKOFTHEYEAR('2000-12-31') weekofyear;

veckodag ǀ vecka ǀ vecka i året ǀ
6 ǀ 52 ǀ 52 ǀ

Slutsats

Detta är en kort artikelhandledning som täcker ämnet MySQL-datumformat. Vi hoppas att alla aspekter du ville bekanta dig med på MySQL-datumformat har täckts. Kom ihåg att ge en tumme upp via kommentarsektionen om du tycker att artikeln är till hjälp.


  1. DATEDIFF_BIG() Exempel i SQL Server

  2. array_agg för matristyper

  3. Det är inte du, det är jag (I/O-felsökning)

  4. Så här fixar du "Systemresurs överskriden" vid migrering till Windows 10