GNU/Linux >> Linux Esercitazione >  >> Cent OS

Guida alla funzione data MySQL con esempi

Introduzione

MySQL viene fornito con molte funzioni integrate che consentono di manipolare i dati. Queste funzioni sono raggruppate in categorie:funzioni di data, funzioni di stringa, funzioni matematiche e altre.

Le funzioni di data offrono numerose opzioni su come modificare, calcolare e convertire le espressioni di data, ora e data e ora in MySQL.

In questo tutorial imparerai le funzioni di data e ora MySQL e come funzionano, su esempi pratici.

Funzioni relative alla data

CURDATE O CURRENT_DATE

Restituisci la data corrente nel formato "AAAA-MM-GG" o "AAAAMMGG" con il CURDATE OPPURE CURRENT_DATE comando.

La sintassi di base:

CURDATE();

Ad esempio, se esegui:

SELECT CURDATE();

MySQL risponde con la data corrente nel formato:

2021-01-17

DATA

Restituisce la data da un'espressione datetime utilizzando il DATE comando.

La sintassi di base:

DATE(datetime);

Ad esempio, se esegui:

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

L'output è:

2021-01-17

DATE_ADD o ADDDATE

Aggiungi un valore di data/ora a un'espressione di data con DATE_ADD o ADDDATE funzione.

La sintassi di base:

DATE_ADD(date, INTERVAL value unit);

Sostituisci data con l'espressione di data a cui vuoi aggiungere un'ora/data. L'unità di valore è l'ora/data che vuoi aggiungere. Deve essere espresso in un valore numerico insieme all'unità del valore.

L'unità può essere:

  • SECONDA
  • MINUTO
  • ORA
  • GIORNO
  • SETTIMANA
  • MESE
  • TRIMESTRE
  • ANNO
  • SECOND_MICROSECONDO
  • MINUTE_MICROSECONDO
  • MINUTE_SECOND
  • ORA_MICROSECONDO
  • ORA_SECONDA
  • ORA_MINUTO
  • DAY_MICROSECONDO
  • GIORNO_SECONDO
  • DAY_MINUTE
  • DAY_HOUR
  • ANNO_MESE

Ad esempio, se esegui:

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

L'output restituisce il risultato:

2021-01-17 07:34:21

FORMATO_DATA

Formatta una data utilizzando DATE_FORMAT .

La sintassi di base:

DATE_FORMAT(date, format);

La data è l'espressione della data che vuoi riformattare, mentre il formato è una combinazione dei seguenti specificatori:

Ad esempio, se esegui:

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

L'output mostra il risultato:

Sunday January 2021

DATE_SUB o SUBDATE

Sottrarre un valore di data/ora a un'espressione di data con il DATE_SUB o SUBDATE funzione.

La sintassi di base:

DATE_SUB(date, INTERVAL value unit);

Sostituisci data con l'espressione di data da cui vuoi sottrarre. L'unità di valore è l'ora/data che vuoi sottrarre. Deve essere espresso in valore numerico insieme all'unità del valore.

Trova un elenco di tipi di unità nella sezione DATE_ADD.

Ad esempio, se esegui:

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

L'output restituisce il risultato:

2021-01-17 06:14:21

DATEDIFF

Restituisce il numero di giorni tra due espressioni di data con il DATEDIFF funzione.

La sintassi di base:

DATEDIFF(date1,date2);

Ad esempio:

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

Restituisce il risultato:

9

ESTRATTO

Per estrarre parte di un'espressione data/ora, utilizza EXTRACT funzione.

La sintassi di base:

EXTRACT(unit FROM date);

Nel comando, devi specificare quale unità vuoi estrarre dalla data specificata .

Trova un elenco di unità che puoi utilizzare nella descrizione DATE_ADD.

Ad esempio, quando esegui:

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

Ottieni il risultato:

26

GET_FORMAT

Restituisce una stringa di formato (una combinazione di specificatori) come specificato nell'argomento con GET_FORMAT . Questa funzione viene spesso utilizzata con DATE_FORMAT .

La sintassi di base:

GET_FORMAT(DATE/TIME/DATETIME,format)

Utilizzare questa funzione con le espressioni di data, ora e data e ora.

Il formato può essere:

  • 'EUR'
  • 'Stati Uniti'
  • 'JIS'
  • 'ISO'
  • 'INTERNO'

C'è un numero finito di risultati che puoi ottenere usando il GET_FORMAT funzione. Di seguito troverai un elenco di tutte le chiamate di funzione e dei loro risultati.

Ad esempio, puoi combinare la funzione con DATE_FORMAT , come nell'esempio seguente:

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

Dove il risultato è:

26.01.2021

MAKEDATE

Restituisci un'espressione di data da un anno e un giorno dell'anno specificati utilizzando il MAKEDATE funzione.

La sintassi di base:

MAKEDATE(year,day);

Ad esempio, se esegui:

SELECT MAKEDATE(2021,34);

L'output mostra il risultato:

2021-02-03

STR_TO_DATE

Formatta una data da una stringa con STR_TO_DATE e restituire un valore di data/ora.

La sintassi di base:

STR_TO_DATE(string, format);

La stringa è ciò che vuoi riformattare, mentre il formato è una combinazione di specificatori che descrivono ogni elemento della stringa .

Puoi trovare un elenco di specificatori e il loro significato nella sezione DATE_FORMAT.

Ad esempio, se esegui:

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

L'output mostra:

2021-01-25

SYSDATE

Per restituire la data e l'ora correnti nel formato “AAAA-MM-GG hh:mm:ss” o “AAAAMMGGDHHMMSS.uuuuuu”, utilizzare il SYSDATE funzione.

La sintassi di base:

SYSDATE();

Puoi aggiungere il fsp argomento per includere la precisione frazionaria al secondo (0-6). In tal caso, la sintassi è SYSDATE(fsp); .

Il comando mostrato di seguito:

SELECT SYSDATE();

In questo momento dà il risultato:

2021-01-25 20:21:04

DATA_UTC

Restituisce il valore della data dell'ora UTC (Coordinated Universal Time) corrente nel formato "AAAA-MM-GG" o "AAAAMMGG" con il UTC_DATE funzione.

La sintassi di base:

UTC_DATE();

Ad esempio, eseguendo il comando seguente:

SELECT UTC_DATE();

Restituisce la data corrente che è:

2021-01-25

Funzioni relative al tempo

AGGIUNGERE TEMPO

Aggiungi un intervallo di tempo a un'espressione data/ora specificata utilizzando ADDTIME .

La sintassi di base:

ADDTIME(datetime, timevalue)

Ad esempio, se esegui:

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

Ottieni il risultato:

2021-01-25 11:27:43.000027

CONVERT_TZ

Converti un'espressione ora/data/ora da un fuso orario a un altro utilizzando il ADDTIME funzione.

La sintassi di base:

CONVERT_TZ(datetime, from_timezone,to_timezone)

Ad esempio, quando esegui:

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

MySQL converte la data e l'ora specificata in +10:00 fuso orario:

2021-01-25 20:12:00

CURTIME o CURRENT_TIME

Restituisci l'ora corrente utilizzando il CURTIME o CURRENT_TIME funzione. Il risultato restituisce l'ora nel formato "hh:mm:ss" o "hhmmss".

La sintassi di base:

CURTIME();

Puoi includere la precisione frazionaria al secondo (da 0 a 6) aggiungendo il fsp argomento.

Ad esempio, il comando seguente mostra l'ora corrente con una precisione di tre secondi frazionari:

CURTIME(3);

L'output risponde con il risultato:

15:19:07.340

ORA

Restituisci l'ora dell'ora/data/ora specificata con HOUR funzione.

La sintassi di base:

TIME(datetime);

Ad esempio, se esegui:

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

Il risultato è:

8

FARE TEMPO

Restituisce un'espressione di tempo dai valori di ora, minuti e secondi specificati utilizzando il MAKETIME funzione.

La sintassi di base:

MAKETIME(hour, minute, second);

Ad esempio, puoi eseguire:

SELECT MAKETIME(09,25,00);

Dove viene visualizzato l'output:

09:25:00

MICROSECONDI

Restituisce i microsecondi dell'espressione ora/data/ora specificata con MICROSECOND .

La sintassi di base:

MICROSECOND(datetime);

Ad esempio, puoi eseguire:

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

Dove il risultato è:

40

MINUTO

Restituisce i minuti dell'espressione ora/data/ora specificata utilizzando il MINUTE funzione.

La sintassi di base:

MINUTE(datetime);

Ad esempio, se esegui il comando:

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

Il risultato è:

23

SEC_TO_TIME

Restituisce un valore di tempo da un valore di secondi specificato con il SEC_TO_TIME funzione.

La sintassi di base:

SEC_TO_TIME(seconds);

Ad esempio, se esegui il comando:

SELECT SEC_TO_TIME(8897);

L'output è:

02:28:17

SOTTOTEMPO

Sottrarre un valore di tempo da un'espressione ora/data/ora utilizzando il SUBTIME funzione.

La sintassi di base:

SUBTIME(datetime,timevalue);

Ad esempio, quando esegui:

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

L'output è:

2021-01-21 19:03:59

TEMPO

Per restituire il valore dell'ora da un'espressione datetime, utilizza TIME funzione.

La sintassi di base:

TIME(datetime);

Ad esempio:

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

Dà il risultato:

13:38:10

FORMATO_ORA

Formatta un valore di tempo nel formato specificato con TIME_FORMAT .

La sintassi di base:

TIME_FORMAT(time,format);

Il formato è una combinazione di specificatori. Puoi trovare un elenco di tutti gli identificatori e il loro significato nella descrizione della funzione DATE_FORMAT.

Ad esempio, eseguendo:

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

Ottieni l'output:

01 45 10 PM

TIME_TO_SEC

Per restituire il valore del tempo convertito in secondi, utilizza il TIME_TO_SEC .

La sintassi di base:

TIME_TO_SEC(timevalue);

Ad esempio, quando esegui:

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

Il risultato è:

49685

TIMEDIFF

Calcola la differenza tra due espressioni ora/data/ora con il TIMEDIFF funzione. In questo caso, il risultato è sempre in valore temporale.

La sintassi di base:

TIMEDIFF(datetime1,datetime2);

Ad esempio, quando esegui:

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

L'output restituisce:

240:00:01

TO_SECONDI

Per convertire un'espressione data/ora in secondi, usa la funzione TO_SECONDS . Il risultato è il numero di secondi tra 0 e la data/data/ora specificata.

La sintassi di base:

TO_SECONDS(datetime);

Ad esempio, se esegui il comando:

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

Il risultato è:

63778435817

UTC_TIME

Restituisci il valore dell'ora UTC corrente con UTC_TIME . Restituisce il valore dell'ora nel formato “HH:MM:SS” o “HHMMSS”.

La sintassi di base:

UTC_TIME();

Ad esempio, se esegui:

SELECT UTC_TIME();

Il risultato che ottieni a questo punto è:

19:45:21

Funzioni relative al timestamp

CURRENT_TIMESTAMP o LOCALTIMESTAMP

Per restituire la data e l'ora correnti, utilizza CURRENT_TIMESTAMP o LOCALTIMESTAMP . Il risultato viene restituito nel formato "AAAA-MM-GG HH-MM-SS" o "AAAAMMGGDHHMMSS.uuuuuu".

La sintassi di base:

CURRENT_TIMESTAMP();

Ad esempio, eseguendo:

SELECT CURRENT_TIMESTAMP();

Il risultato attuale è:

2021-01-25 19:53:55

DA_UNIXTIME

Restituisce un'espressione data/ora da un timestamp nel formato Unix con FROM_UNIXTIME .

La sintassi di base:

FROM_UNIXTIME(unix_timestamp);

Se esegui il comando senza un argomento che specifichi il formato, restituisce il risultato nel formato "AAAA-MM-GG hh:mm:ss" o "AAAAMMGGhhmmss".

Ad esempio, se esegui:

SELECT FROM_UNIXTIME(1611231404);

Ottieni il risultato:

2021-01-21 12:16:44

TIMESTAMP

Per restituire un'espressione datetime da un valore date o datetime, utilizzare la funzione TIMESTAMP . Se aggiungi due argomenti, l'output restituisce la somma degli argomenti.

La sintassi di base:

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

Ad esempio, quando esegui il comando:

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

L'output mostra il risultato:

2021-01-14 06:50:00

TIMESTAMPADD

Aggiungi un valore di tempo a un'espressione data/ora utilizzando il TIMESTAMPADD funzione.

La sintassi di base:

TIMESTAMPADD(unit,value,datetime);

L'unità può essere:

  • FRAC_SECOND
  • SECONDA
  • MINUTO
  • ORA
  • GIORNO
  • SETTIMANA
  • MESE
  • TRIMESTRE
  • ANNO

Ad esempio, il comando seguente aggiunge 3 giorni alla data specificata:

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

Pertanto, l'output mostra:

2021-01-21

TIMESTAMPDIFF

Per calcolare la differenza tra due espressioni di data/ora, utilizza TIMESTAMPDIFF . La funzione sottrae un valore datetime dall'altro nell'unità specificata.

La sintassi di base:

TIMESTAMPDIFF(unit,datetime1,datetime2);

Puoi trovare un elenco con diversi tipi di unità, controlla l'elenco nella sezione sopra.

Ad esempio, puoi calcolare la differenza in giorni tra le due seguenti date:

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

Dove il risultato è:

13

UNIX_TIMESTAMP

Restituisce un timestamp Unix da un'espressione data/ora con UNIX_TIMESTAMP funzione. Il timestamp Unix rappresenta i secondi tra la data e l'ora specificata e "1970-01-01 00:00:00" UTC.

La sintassi di base:

UNIX_TIMESTAMP(datetime);

Ad esempio, eseguendo il comando seguente:

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

Dà il risultato:

1611595980

UTC_TIMESTAMP

Restituisci il valore di data e ora UTC corrente con UTC_TIMESTAMP . Restituisce il valore data/ora nel formato "AAAA-MM-GG HH:MM:SS" o "AAAAMMGGHHMMSS.uuuuuu".

La sintassi di base:

UTC_TIMESTAMP(datetime);

Ad esempio, il comando:

SELECT UTC_TIMESTAMP();

Restituisce l'output nello stesso formato di quello seguente:

2021-01-25 23:18:06

Funzioni relative a giorno/settimana/mese/anno

GIORNO

Restituisce il giorno di un mese da un'espressione data/ora specificata con il DAY funzione.

La sintassi di base:

DAY(datetime);

Se esegui il comando seguente:

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

L'output restituisce il risultato:

26

DAYNAME

Restituisce il nome del giorno della settimana da un'espressione data/ora specificata utilizzando il DAYNAME funzione.

La sintassi di base:

DAYNAME(datetime);

Ad esempio, quando esegui il comando:

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

MySQL risponde con il risultato:

Tuesday

GIORNO DEL MESE

Restituisce il giorno di un mese da un'espressione data/ora specificata con DAYOFMONTH .

La sintassi di base:

DAYOFMONTH(datetime);

Ad esempio, quando esegui il comando:

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

MySQL risponde con il risultato:

26

GIORNO DELLA SETTIMANA

Restituisce il giorno della settimana in valore numerico dall'espressione data/ora specificata utilizzando DAYOFWEEK .

La sintassi di base:

DAYOFWEEK(datetime);

Eseguendo il comando seguente:

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

Dà la risposta:

3

GIORNO DELL'ANNO

Restituisce il giorno in un anno dall'espressione data/ora specificata utilizzando la funzione DAYOFYEAR .

La sintassi di base:

DAYOFYEAR(datetime);

Ad esempio, quando esegui il comando:

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

L'output dà il risultato:

57

DA_GIORNI

Restituisce un'espressione di data da una rappresentazione numerica di un giorno utilizzando la funzione FROM_DAYS .

La sintassi di base:

FROM_DAYS(number);

Ad esempio, eseguendo:

SELECT FROM_DAYS(738181);

Il prompt di MySQL risponde con il risultato:

2021-01-26

ULTIMO GIORNO

Restituisci l'ultimo giorno del mese da una data/data/ora specificata con il LAST_DAY funzione.

La sintassi di base:

LAST_DAY(date);

Ad esempio, se esegui il seguente comando:

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

L'output risponde con:

31

MESE

Restituisci il mese (in valore numerico) da una data/data/ora specificata utilizzando il MONTH funzione.

La sintassi di base:

MONTH(date);

Ad esempio, quando esegui:

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

MySQL risponde con:

1

NOME DEL MESE

Restituisci il nome del mese da una data/dataora specificata con il MONTHNAME funzione.

La sintassi di base:

MONTHNAME(date);

Se esegui il comando:

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

Ottieni la seguente risposta:

January

AGGIUNGI_PERIODO

Per aggiungere un numero specificato di mesi a un periodo, utilizza il PERIOD_ADD funzione.

La sintassi di base:

PERIOD_ADD(period,number);

Il periodo è definito nel formato AAMM o AAAAMM, mentre il numero è il numero di mesi che vuoi aggiungere.

Ad esempio:

SELECT PERIOD_ADD(202101, 5);

Dà il risultato:

202106

PERIOD_DIFF

Restituisci il numero di mesi tra due periodi con PERIOD_DIFF .

La sintassi di base:

PERIOD_DIFF(period1,period2);

Ogni periodo dovrebbe essere nel formato AAMM o AAAAMM.

Ad esempio:

SELECT PERIOD_DIFF(202101, 202003);

Produce il risultato:

10

TRIMESTRE

Per restituire un trimestre di un anno da una data/data/ora specificata, utilizzare la funzione QUARTER .

La sintassi di base:

QUARTER(date);

Ad esempio, eseguendo il comando:

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

L'output risponde con:

1

TO_GIORNI

Converti un'espressione di data/ora in una rappresentazione numerica di un giorno con TO_DAYS .

La sintassi di base:

TO_DAYS(datetime);

Ad esempio, per il comando:

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

Il risultato è:

738181

SETTIMANA

Per restituire il numero della settimana da una data specificata, utilizzare la funzione WEEK .

La sintassi di base:

WEEK(date);

Puoi anche includere la modalità argomento, nel qual caso la sintassi è WEEK(date,mode); .

L'argomento mode specifica da quale giorno inizia la settimana. Se non ci sono argomenti, usa 0 modalità predefinita.

La tabella seguente descrive ciascuna modalità:

Ad esempio, se esegui:

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

L'output risponde con:

4

GIORNO DELLA SETTIMANA

Restituisci il giorno della settimana dalla data specificata in valore numerico con WEEKDAY . Ogni numero rappresenta uno dei giorni della settimana:lunedì è 0 , martedì è 1 , e così via.

La sintassi di base:

WEEKDAY(date);

Ad esempio, eseguendo il comando seguente:

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

Dà la risposta:

1

ANNO SETTIMANALE

Per restituire il numero di una settimana in un anno, utilizza il WEEKDAY funzione.

La sintassi di base:

WEEKOFYEAR(date);

Ad esempio, quando esegui il comando:

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

L'output mostra il risultato:

3

ANNO

Restituisci l'anno dalla data specificata con il YEAR funzione.

La sintassi di base:

YEAR(date);

Se esegui il seguente comando:

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

Ottieni il risultato:

2021

SETTIMANA DELL'ANNO

Restituisci il numero dell'anno e della settimana dalla data specificata utilizzando il YEARWEEK funzione.

La sintassi di base:

YEARWEEK(date);

Puoi aggiungere una mode argomento alla sintassi di base per specificare il giorno da cui inizia la settimana. Per vedere un elenco di modalità e il loro significato, controlla la tabella nella WEEK funzione.

Ad esempio, quando esegui il comando:

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

L'output visualizza:

202104

Cent OS
  1. Tipi di dati Redis con comandi:guida completa

  2. Comando wc Linux con esempi

  3. Comando Nohup con esempi

  4. Comando JQ in Linux con esempi

  5. Guida per principianti FTP e SFTP con 10 esempi

Comando IP Linux con esempi

Comando della cronologia con esempi

DRBD con MySQL Centos 8

7 Esempi di comando Date in Linux

La guida definitiva al download di Wget con 15 fantastici esempi

Tutorial sulle funzioni di Bash Shell con 6 esempi pratici