GNU/Linux >> Znalost Linux >  >> Cent OS

Průvodce funkcí data MySQL s příklady

Úvod

MySQL přichází s mnoha vestavěnými funkcemi, které vám umožňují manipulovat s daty. Tyto funkce jsou seskupeny do kategorií – datové funkce, řetězcové funkce, matematické funkce a další.

Funkce data vám poskytují řadu možností, jak upravit, vypočítat a převést výrazy data, času a data a času v MySQL.

V tomto tutoriálu se na praktických příkladech seznámíte s funkcemi data a času MySQL a jak fungují.

Funkce související s datem

AKTUÁLNÍ NEBO CURRENT_DATE

Vraťte aktuální datum ve formátu „RRRR-MM-DD“ nebo „RRRRMMDD“ s CURDATE NEBO CURRENT_DATE příkaz.

Základní syntaxe:

CURDATE();

Pokud například spustíte:

SELECT CURDATE();

MySQL odpoví aktuálním datem ve formátu:

2021-01-17

DATUM

Vraťte datum z výrazu datetime pomocí DATE příkaz.

Základní syntaxe:

DATE(datetime);

Pokud například spustíte:

SELECT DATE('2021-01-17 10:12:16');

Výstup je:

2021-01-17

DATE_ADD nebo ADDDATE

Přidejte hodnotu času a data do výrazu data pomocí DATE_ADD nebo ADDDATE funkce.

Základní syntaxe:

DATE_ADD(date, INTERVAL value unit);

Nahraďte datum s výrazem data, ke kterému chcete přidat čas/datum. hodnotová jednotka je čas/datum, které chcete přidat. Musí být vyjádřena číselnou hodnotou spolu s jednotkou hodnoty.

Jednotka může být:

  • DRUHÁ
  • MINUTE
  • HODINA
  • DEN
  • WEEK
  • MĚSÍC
  • ČTVRTLETÍ
  • ROK
  • SECOND_MICROSECOND
  • MINUTE_MICROSECOND
  • MINUTE_SECOND
  • HOUR_MICROSECOND
  • HOUR_SECOND
  • HOUR_MINUTE
  • DAY_MICROSECOND
  • DAY_SECOND
  • DAY_MINUTE
  • DAY_HOUR
  • YEAR_MONTH

Pokud například spustíte:

SELECT DATE_ADD('2021-01-17 07:14:21', INTERVAL 20 MINUTE);

Výstup vrátí výsledek:

2021-01-17 07:34:21

DATE_FORMAT

Naformátujte datum pomocí DATE_FORMAT .

Základní syntaxe:

DATE_FORMAT(date, format);

datum je výraz data, který chcete přeformátovat, zatímco formát je kombinací následujících specifikátorů:

Pokud například spustíte:

SELECT DATE_FORMAT('2021-01-17', '%W %M %Y');

Výstup zobrazí výsledek:

Sunday January 2021

DATE_SUB nebo SUBDATE

Odečtěte hodnotu času a data od výrazu data pomocí DATE_SUB nebo SUBDATE funkce.

Základní syntaxe:

DATE_SUB(date, INTERVAL value unit);

Nahraďte datum s výrazem data, od kterého chcete odečíst. hodnotová jednotka je čas/datum, které chcete odečíst. Musí být vyjádřen v číselné hodnotě spolu s jednotkou hodnoty.

Najděte seznam typů jednotek v sekci DATE_ADD.

Pokud například spustíte:

SELECT DATE_SUB('2021-01-17 07:14:21', INTERVAL 1 HOUR);

Výstup vrátí výsledek:

2021-01-17 06:14:21

DATEDIFF

Vrátí počet dní mezi dvěma výrazy data pomocí DATEDIFF funkce.

Základní syntaxe:

DATEDIFF(date1,date2);

Například:

SELECT DATEDIFF('2021-01-23','2021-01-14');

Vrátí výsledek:

9

EXTRAKTOVAT

Chcete-li extrahovat část výrazu datum/datum a čas, použijte EXTRACT funkce.

Základní syntaxe:

EXTRACT(unit FROM date);

V příkazu je potřeba určit, jakou jednotku chcete extrahovat ze zadaného data .

V popisu DATE_ADD vyhledejte seznam jednotek, které můžete použít.

Například, když spustíte:

SELECT EXTRACT(DAY FROM '2021-01-26');

Dostanete výsledek:

26

GET_FORMAT

Vrátí formátovací řetězec (kombinaci specifikátorů), jak je uvedeno v argumentu s GET_FORMAT . Tato funkce se často používá s DATE_FORMAT .

Základní syntaxe:

GET_FORMAT(DATE/TIME/DATETIME,format)

Tuto funkci použijte s výrazy datum, čas a datum a čas.

formát může být:

  • „EUR“
  • „USA“
  • „JIS“
  • „ISO“
  • „INTERNÍ“

Pomocí GET_FORMAT můžete získat konečný počet výsledků funkce. Níže naleznete seznam všech volání funkcí a jejich výsledků.

Funkci můžete například zkombinovat s DATE_FORMAT , jako v následujícím příkladu:

SELECT DATE_FORMAT('2021-01-26', GET_FORMAT(DATE,'EUR'));

Kde je výsledek:

26.01.2021

MAKEDATE

Vrátí výraz data ze zadaného roku a dne v roce pomocí MAKEDATE funkce.

Základní syntaxe:

MAKEDATE(year,day);

Pokud například spustíte:

SELECT MAKEDATE(2021,34);

Výstup ukazuje výsledek:

2021-02-03

STR_TO_DATE

Naformátujte datum z řetězce pomocí STR_TO_DATE a vrátí hodnotu data/datetime.

Základní syntaxe:

STR_TO_DATE(string, format);

řetězec je to, co chcete přeformátovat, zatímco formát je kombinací specifikátorů, které popisují každý prvek řetězce .

Seznam specifikátorů a jejich význam naleznete v sekci DATE_FORMAT.

Pokud například spustíte:

SELECT STR_TO_DATE('January,25,2021', '%M %e %Y');

Výstup zobrazuje:

2021-01-25

SYSDATE

Chcete-li vrátit aktuální datum a čas ve formátu „RRRR-MM-DD hh:mm:ss“ nebo „RRRRMMDDHHMMSS.uuuuuu“, použijte SYSDATE funkce.

Základní syntaxe:

SYSDATE();

Můžete přidat fsp argument pro zahrnutí zlomkové sekundové přesnosti (0-6). V takovém případě je syntaxe SYSDATE(fsp); .

Příkaz zobrazený níže:

SELECT SYSDATE();

V tuto chvíli dává výsledek:

2021-01-25 20:21:04

UTC_DATE

Vrátí aktuální hodnotu data koordinovaného světového času (UTC) ve formátu „RRRR-MM-DD“ nebo „RRRRMMDD“ s UTC_DATE funkce.

Základní syntaxe:

UTC_DATE();

Například spuštěním následujícího příkazu:

SELECT UTC_DATE();

Vrátí aktuální datum, které je:

2021-01-25

Funkce související s časem

PŘIDAT ČAS

Přidejte časový interval k zadanému výrazu čas/datum a čas pomocí ADDTIME .

Základní syntaxe:

ADDTIME(datetime, timevalue)

Pokud například spustíte:

SELECT ADDTIME('2021-01-25 08:13:11.000021', '3:14:32.000006');

Dostanete výsledek:

2021-01-25 11:27:43.000027

CONVERT_TZ

Převeďte výraz čas/datum a čas z jednoho časového pásma do druhého pomocí ADDTIME funkce.

Základní syntaxe:

CONVERT_TZ(datetime, from_timezone,to_timezone)

Například, když spustíte:

SELECT CONVERT_TZ('2021-01-25 10:12:00','+00:00','+10:00');

MySQL převede zadané datum a čas na časové pásmo +10:00:

2021-01-25 20:12:00

CURTIME nebo CURRENT_TIME

Vraťte aktuální čas pomocí CURTIME nebo CURRENT_TIME funkce. Výsledek vrátí čas ve formátu „hh:mm:ss“ nebo „hhmmss“.

Základní syntaxe:

CURTIME();

Můžete zahrnout zlomkovou sekundovou přesnost (od 0 do 6) přidáním fsp argument.

Například následující příkaz zobrazuje aktuální čas s přesností na tři zlomky sekund:

CURTIME(3);

Výstup odpoví výsledkem:

15:19:07.340

HODINA

Vraťte hodinu zadaného času/datumčas pomocí HOUR funkce.

Základní syntaxe:

HOUR(datetime);

Pokud například spustíte:

SELECT HOUR('08:40:07');

Výsledek je:

8

MAKETIME

Vrátí časový výraz ze zadaných hodnot hodin, minut a sekund pomocí MAKETIME funkce.

Základní syntaxe:

MAKETIME(hour, minute, second);

Můžete například spustit:

SELECT MAKETIME(09,25,00);

Kde se výstup zobrazí:

09:25:00

MIKROSECOND

Vraťte mikrosekundy zadaného výrazu čas/datum a čas pomocí MICROSECOND .

Základní syntaxe:

MICROSECOND(datetime);

Můžete například spustit:

SELECT MICROSECOND('2021-01-21 10:23:44.000040');

Kde je výsledek:

40

MINUTE

Vraťte minuty zadaného výrazu čas/datum a čas pomocí MINUTE funkce.

Základní syntaxe:

MINUTE(datetime);

Pokud například spustíte příkaz:

SELECT MINUTE('10:23:44');

Výsledek je:

23

SEC_TO_TIME

Vrátí časovou hodnotu ze zadané sekundové hodnoty s SEC_TO_TIME funkce.

Základní syntaxe:

SEC_TO_TIME(seconds);

Pokud například spustíte příkaz:

SELECT SEC_TO_TIME(8897);

Výstup je:

02:28:17

SUBTIME

Odečtěte hodnotu času od výrazu time/datetime pomocí SUBTIME funkce.

Základní syntaxe:

SUBTIME(datetime,timevalue);

Například, když spustíte:

SELECT SUBTIME('2021-01-21 21:24:00','2:20:1');

Výstup je:

2021-01-21 19:03:59

ČAS

Chcete-li vrátit hodnotu času z výrazu datetime, použijte TIME funkce.

Základní syntaxe:

TIME(datetime);

Například:

SELECT TIME('2021-01-22 13:38:10');

Dává výsledek:

13:38:10

TIME_FORMAT

Naformátujte hodnotu času do zadaného formátu pomocí TIME_FORMAT .

Základní syntaxe:

TIME_FORMAT(time,format);

formát je kombinací specifikátorů. Seznam všech specifikátorů a jejich význam naleznete v popisu funkce DATE_FORMAT.

Například spuštěním:

SELECT TIME_FORMAT('13:45:10','%h %i %s %p');

Získáte výstup:

01 45 10 PM

TIME_TO_SEC

Chcete-li vrátit hodnotu času převedenou na sekundy, použijte TIME_TO_SEC .

Základní syntaxe:

TIME_TO_SEC(timevalue);

Například, když spustíte:

SELECT TIME_TO_SEC('13:48:05');

Výsledek je:

49685

ČASOVÝ ROZDÍL

Vypočítejte rozdíl mezi dvěma výrazy čas/datum a čas pomocí TIMEDIFF funkce. V tomto případě je výsledek vždy v časové hodnotě.

Základní syntaxe:

TIMEDIFF(datetime1,datetime2);

Například, když spustíte:

SELECT TIMEDIFF('2021-01-15 11:10:17','2021-01-05 11:10:16');

Výstup vrátí:

240:00:01

TO_SECONDS

Chcete-li převést výraz datum/datum a čas na sekundy, použijte funkci TO_SECONDS . Výsledkem je počet sekund mezi 0 a zadaným datem/datem a časem.

Základní syntaxe:

TO_SECONDS(datetime);

Pokud například spustíte příkaz:

SELECT TO_SECONDS('2021-01-21 08:10:17');

Výsledek je:

63778435817

UTC_TIME

Vraťte aktuální hodnotu času UTC pomocí UTC_TIME . Vrací hodnotu času ve formátu „HH:MM:SS“ nebo „HHMMSS“.

Základní syntaxe:

UTC_TIME();

Pokud například spustíte:

SELECT UTC_TIME();

V tomto okamžiku dostanete výsledek:

19:45:21

Funkce související s časovým razítkem

CURRENT_TIMESTAMP nebo LOCALTIMESTAMP

Chcete-li vrátit aktuální datum a čas, použijte CURRENT_TIMESTAMP nebo LOCALTIMESTAMP . Výsledek se vrátí ve formátu „RRRR-MM-DD HH-MM-SS“ nebo „RRRRMMDDHHMMSS.uuuuuu“.

Základní syntaxe:

CURRENT_TIMESTAMP();

Například spuštěním:

SELECT CURRENT_TIMESTAMP();

Aktuální výsledek je:

2021-01-25 19:53:55

FROM_UNIXTIME

Vrátí výraz datum/datum a čas z časového razítka ve formátu Unix s FROM_UNIXTIME .

Základní syntaxe:

FROM_UNIXTIME(unix_timestamp);

Pokud příkaz spustíte bez argumentu určujícího formát, vrátí výsledek ve formátu „RRRR-MM-DD hh:mm:ss“ nebo „RRRRMMDDhhmmss“.

Pokud například spustíte:

SELECT FROM_UNIXTIME(1611231404);

Dostanete výsledek:

2021-01-21 12:16:44

TIMESTAMP

Chcete-li vrátit výraz datetime z hodnoty data nebo datetime, použijte funkci TIMESTAMP . Pokud přidáte dva argumenty, výstup vrátí součet argumentů.

Základní syntaxe:

TIMESTAMP(datetime);
TIMESTAMP(datetime,time);

Například, když spustíte příkaz:

SELECT TIMESTAMP('2021-01-13','30:50:00');

Výstup ukazuje výsledek:

2021-01-14 06:50:00

TIMESTAMPADD

Přidejte hodnotu času k výrazu datum/datum a čas pomocí TIMESTAMPADD funkce.

Základní syntaxe:

TIMESTAMPADD(unit,value,datetime);

Jednotka může být:

  • FRAC_SECOND
  • DRUHÁ
  • MINUTE
  • HODINA
  • DEN
  • WEEK
  • MĚSÍC
  • ČTVRTLETÍ
  • ROK

Například následující příkaz přidá k určenému datu 3 dny:

SELECT TIMESTAMPADD(DAY,3,'2021-01-18');

Proto výstup zobrazuje:

2021-01-21

TIMESTAMPDIFF

Chcete-li vypočítat rozdíl mezi dvěma výrazy datum/datum a čas, použijte TIMESTAMPDIFF . Funkce odečte jednu hodnotu data a času od druhé v zadané jednotce.

Základní syntaxe:

TIMESTAMPDIFF(unit,datetime1,datetime2);

Můžete najít seznam s různými typy jednotek, podívejte se na seznam v sekci výše.

Můžete například vypočítat rozdíl mezi následujícími dvěma daty ve dnech:

SELECT TIMESTAMPDIFF(DAY,3,'2021-01-18');

Kde je výsledek:

13

UNIX_TIMESTAMP

Vraťte unixové časové razítko z výrazu datum/datum a čas pomocí UNIX_TIMESTAMP funkce. Unixové časové razítko představuje sekundy mezi zadaným datem a časem „1970-01-01 00:00:00“ UTC.

Základní syntaxe:

UNIX_TIMESTAMP(datetime);

Například spuštěním následujícího příkazu:

SELECT UNIX_TIMESTAMP('2021-01-25 17:33:00');

Dává výsledek:

1611595980

UTC_TIMESTAMP

Vraťte aktuální hodnotu data a času UTC pomocí UTC_TIMESTAMP . Vrací hodnotu data a času ve formátu „RRRR-MM-DD HH:MM:SS“ nebo „RRRRMMDDHHMMSS.uuuuuu“.

Základní syntaxe:

UTC_TIMESTAMP(datetime);

Například příkaz:

SELECT UTC_TIMESTAMP();

Vrátí výstup ve stejném formátu jako níže:

2021-01-25 23:18:06

Funkce související se dnem/týdnem/měsícem/rokem

DEN

Vrátí den v měsíci ze zadaného výrazu datum/datum a čas pomocí DAY funkce.

Základní syntaxe:

DAY(datetime);

Pokud spustíte příkaz níže:

SELECT DAY('2021-01-26 12:32:00');

Výstup vrátí výsledek:

26

DAYNAME

Vraťte název dne v týdnu ze zadaného výrazu datum/datum a čas pomocí DAYNAME funkce.

Základní syntaxe:

DAYNAME(datetime);

Například, když spustíte příkaz:

SELECT DAYNAME('2021-01-26 12:32:00');

MySQL odpoví výsledkem:

Tuesday

DAYOFMONTH

Vrátí den v měsíci ze zadaného výrazu datum/datum a čas pomocí DAYOFMONTH .

Základní syntaxe:

DAYOFMONTH(datetime);

Například, když spustíte příkaz:

SELECT DAYOFMONTH('2021-01-26 12:32:00');

MySQL odpoví výsledkem:

26

DAYOFWEEK

Vraťte den v týdnu v číselné hodnotě ze zadaného výrazu datum/datum a čas pomocí DAYOFWEEK .

Základní syntaxe:

DAYOFWEEK(datetime);

Spuštění příkazu níže:

SELECT DAYOFWEEK('2021-01-26 12:32:00');

Dává odpověď:

3

DAYOFYEAR

Vraťte den v roce ze zadaného výrazu datum/datum a čas pomocí funkce DAYOFYEAR .

Základní syntaxe:

DAYOFYEAR(datetime);

Například, když spustíte příkaz:

SELECT DAYOFYEAR('2021-02-26 12:32:00');

Výstup dává výsledek:

57

FROM_DAYS

Vrátí výraz data z číselného vyjádření dne pomocí funkce FROM_DAYS .

Základní syntaxe:

FROM_DAYS(number);

Například běh:

SELECT FROM_DAYS(738181);

Výzva MySQL odpoví výsledkem:

2021-01-26

POSLEDNÍ_DEN

Vraťte poslední den v měsíci od zadaného data/datu a času pomocí LAST_DAY funkce.

Základní syntaxe:

LAST_DAY(date);

Pokud například spustíte následující příkaz:

SELECT LAST_DAY('2021-01-26');

Výstup odpovídá:

31

MĚSÍC

Vraťte měsíc (v číselné hodnotě) ze zadaného data/datu a času pomocí MONTH funkce.

Základní syntaxe:

MONTH(date);

Například, když spustíte:

SELECT MONTH('2021-01-26');

MySQL odpoví:

1

MONTHNAME

Vraťte název měsíce ze zadaného data/datu a času pomocí MONTHNAME funkce.

Základní syntaxe:

MONTHNAME(date);

Pokud spustíte příkaz:

SELECT MONTH('2021-01-26');

Obdržíte následující odpověď:

January

PERIOD_ADD

Chcete-li k období přidat zadaný počet měsíců, použijte PERIOD_ADD funkce.

Základní syntaxe:

PERIOD_ADD(period,number);

období je definováno ve formátu RRMM nebo RRRRMM, zatímco číslo je počet měsíců, které chcete přidat.

Například:

SELECT PERIOD_ADD(202101, 5);

Dává výsledek:

202106

PERIOD_DIFF

Vraťte počet měsíců mezi dvěma obdobími pomocí PERIOD_DIFF .

Základní syntaxe:

PERIOD_DIFF(period1,period2);

Každé období by měl být ve formátu RRMM nebo RRRRMM.

Například:

SELECT PERIOD_DIFF(202101, 202003);

Výsledkem je:

10

ČTVRTLETÍ

Chcete-li vrátit čtvrt roku od zadaného data/času, použijte funkci QUARTER .

Základní syntaxe:

QUARTER(date);

Například spuštěním příkazu:

SELECT QUARTER('2021-01-26');

Výstup odpovídá:

1

DO_DAYS

Převeďte výraz datum/datum a čas na číselnou reprezentaci dne pomocí TO_DAYS .

Základní syntaxe:

TO_DAYS(datetime);

Například pro příkaz:

SELECT TO_DAYS('2021-01-26');

Výsledek je:

738181

WEEK

Chcete-li vrátit číslo týdne od zadaného data, použijte funkci WEEK .

Základní syntaxe:

WEEK(date);

Můžete také zahrnout režim argument, v takovém případě je syntaxe WEEK(date,mode); .

Argument mode určuje, kterým dnem týden začíná. Pokud neexistuje žádný argument, použije 0 ve výchozím režimu.

Následující tabulka popisuje každý režim:

Pokud například spustíte:

SELECT WEEK('2021-01-26');

Výstup odpovídá:

4

WEEKDAY

Vraťte den v týdnu od zadaného data v číselné hodnotě pomocí WEEKDAY . Každé číslo představuje jeden ze dnů v týdnu – pondělí je 0 , úterý je 1 , a tak dále.

Základní syntaxe:

WEEKDAY(date);

Například spuštěním následujícího příkazu:

SELECT WEEKDAY('2021-01-26');

Dává odpověď:

1

WEEKOFYEAR

Chcete-li vrátit číslo týdne v roce, použijte WEEKDAY funkce.

Základní syntaxe:

WEEKOFYEAR(date);

Například, když spustíte příkaz:

SELECT WEEKOFYEAR('2021-01-26');

Výstup ukazuje výsledek:

3

ROK

Vraťte rok od zadaného data pomocí YEAR funkce.

Základní syntaxe:

YEAR(date);

Pokud spustíte následující příkaz:

SELECT YEAR('2021-01-26');

Dostanete výsledek:

2021

YEARWEEK

Vraťte rok a číslo týdne od zadaného data pomocí YEARWEEK funkce.

Základní syntaxe:

YEARWEEK(date);

Můžete přidat mode argument k základní syntaxi k určení dne, od kterého týden začíná. Chcete-li zobrazit seznam režimů a jejich význam, podívejte se do tabulky v WEEK funkce.

Například, když spustíte příkaz:

SELECT YEARWEEK('2021-01-26');

Na výstupu se zobrazí:

202104

Cent OS
  1. Příkaz Nohup s příklady

  2. JQ Command v Linuxu s příklady

  3. Průvodce FTP a SFTP pro začátečníky s 10 příklady

  1. Redis datové typy s příkazy:Komplexní průvodce

  2. wc Linux Command s příklady

  3. Jak vytvořit nebo přidat index v MySQL s příklady

  1. Linux ip příkaz s příklady

  2. Příkaz Netcat (nc) s příklady

  3. Docker Guide:Deploying Ghost Blog with MySQL a Traefik with Docker