Mysql
 sql >> Database >  >> RDS >> Mysql

Formato data MySQL:cosa devi sapere

MySQL è derivato da "My" - la figlia del cofondatore e SQL - Structured Query Language. È un tipo open source di sistema di gestione di database relazionali. Questo sistema di database relazionale aiuta a organizzare i dati in tabelle riconoscibili, consentendo così relazioni strutturali di diversi set di dati.

La data MySQL è uno dei tipi di dati temporali in grado di gestire i valori dei dati insieme ad altri tipi di dati come tipi di dati numerici, tipi di dati String, tipi di dati booleani, data e ora e tipi di dati spaziali.

La funzione DATE_FORMAT() viene utilizzata in MySQL per formattare la data utilizzando il valore di formato specificato. Ad esempio, se viene fornita una data, la funzione la formatterà rispetto ai parametri specificati.

Sintassi del formato della data MySQL

DATE_FORMAT(date, format)

La funzione di sintassi sopra accetta due parametri come mostrato di seguito:

  • data – Specifica la data da formattare
  • formato – Definisce il formato da utilizzare per formattare la data

Di seguito è riportato un elenco di formati con cui dovresti familiarizzare quando hai a che fare con la funzione data.

  • %a – questo formato mostra il nome del giorno della settimana. è limitato da domenica a sabato.
  • %b – questo simbolo di formato mostra il nome del mese. è limitato da gennaio a dicembre.
  • %c – questo simbolo di formato indica il nome numerico del mese. è limitato da 0 a 12
  • %D:questo simbolo di formato mostra il valore numerico del giorno del mese seguito da un suffisso come 1° o 2°.
  • %e – questo simbolo di formato mostra il valore numerico del giorno del mese. è limitato da 0 a 31
  • %f – questo simbolo di formato mostra i microsecondi. è limitato da 000000 a 999999.
  • %H:questo simbolo di formato indica l'ora. È limitato da 00 a 23.
  • %i – questo simbolo di formato mostra i minuti. è limitato da 00 a 59.
  • %j – questo simbolo di formato mostra il giorno dell'anno. è limitato da 001 a 366.
  • %M:questo simbolo di formato indica il nome del mese. è limitato da gennaio a dicembre
  • %p:questo simbolo di formato mostra PM o AM
  • %S:questo simbolo di formato mostra i secondi. è limitato da 00 a 59
  • %U:questo simbolo di formato mostra i giorni feriali in cui la domenica è il primo giorno. È limitato da 00 a 53.
  • %W:questo simbolo di formato mostra i giorni della settimana da domenica a sabato
  • %Y:questo simbolo di formato mostra il valore numerico dell'anno come un numero a 4 cifre

I formati sopra elencati restituiscono una data formattata.

Esempio 1: 

Per estrarre o mostrare l'anno dalla data corrente, eseguiremo la seguente riga di comando:

SELECT DATE_FORMAT("2021-09-25", "%Y");
Uscita:
Esempio 2:

Estrai il nome del mese da una data specifica come mostrato di seguito:

25-09-2021

SELECT DATE_FORMAT("2021-09-25", "%M");
Uscita:
Esempio 3:

Estrarre ore e minuti dalla data fornita di seguito:

25-09-2021

SELECT DATE_FORMAT("2021-09-25 10:20:23", "%H %i");
Uscita:
Esempio 4: 

Estrarre numericamente il giorno del mese dalla data sotto specificata:

25-09-2021

SELECT DATE_FORMAT("2021-09-25", "%D");
Uscita:
Esempio 5:

Estrarre rispettivamente il mese, il giorno e l'anno dalla data qui indicata:

25-09-2021

SELECT DATE_FORMAT("2021-09-25", "%M %d %Y");
Uscita:

La data MySQL usa il formato; aaaa-mm-gg per memorizzare un valore di dati e questo formato è solitamente corretto senza il permesso di modificarlo di sorta. Per i requisiti di archiviazione di MySQL, per memorizzare un singolo valore di data, utilizzerebbe circa 3 byte e ha un valore di data compreso tra 1000-01-01 e 9999-12-31. Pertanto, un utente che deve memorizzare un intervallo di date al di fuori di questi parametri è possibile solo tramite numeri interi. Tuttavia, questo processo è piuttosto faticoso e richiederebbe la creazione di tre colonne, una per l'anno, un'altra per il mese e l'ultima per il giorno.

Spesso non è consigliabile provare nella maggior parte delle occasioni se si desidera modificare il formato della data. La disabilitazione della "modalità rigorosa" aiuterà a convertire qualsiasi data non valida nel "valore di data zero". Una data non valida in questo caso non seguirebbe il formato della data MySQL standard, ad esempio 24-01-2020. Ciò creerebbe anche la necessità di sviluppare "funzioni memorizzate", che riproducano le funzioni di data appena create di MySQL.

Valori di data MySQL con anni a 2 cifre

MySQL accetterà solo valori di anno a due cifre nelle seguenti condizioni:

  1. I valori dell'anno compresi tra 00 e 69 vengono convertiti in 2000-2069
  2. I valori degli anni compresi tra 70 e 79 vengono convertiti in 1970-1999

È tuttavia consigliabile evitare l'utilizzo di valori di data con due cifre poiché è ambiguo.
Ecco un esempio. Viene creata una tabella con il nome "persone" e dispone di colonne "tipi di dati":

CREATE TABLE IF NOT EXISTS people ( 
JOB_ID integer NOT NULL UNIQUE PRIMARY KEY, 
JOB_TITLE varchar(35) NOT NULL DEFAULT ' ', 
MIN_SALARY decimal(6,0) DEFAULT 8000, 
MAX_SALARY decimal(6,0) DEFAULT NULL
)ENGINE=InnoDB;

La seguente funzione "inserirà una riga" nella tabella "persone":

INSERT INTO people(JOB_ID, JOB_TITLE, MIN_SALARY, MAX_SALARY)
VALUES('5', 'Foss', '2000', '2000');

Ora "interroga i dati" dalla tabella "persone"

SELECT * FROM people;

Dopo aver eseguito i comandi precedenti, sarà ora possibile utilizzare l'opzione del formato anno a 2 cifre per inserire i dati nella tabella "persone":

INSERT INTO people(JOB_ID,JOB_TITLE,MIN_SALARY,MAX_SALARY,BIRTH)
VALUES('6', 'FOSSLINUX', '200', '2000', '01-09-01');

'01' è stato utilizzato nella prima riga come anno, compreso tra (intervallo 00-69). MySQL lo convertirà quindi in 2001, mentre nella seconda riga, l'uso di "84" rientra nell'intervallo (70-99) e MySQL lo converte in 1984.

Funzioni di data MySQL

MySQL spesso fornisce e utilizza diverse funzioni di data, che aiutano gli utenti a manipolare i propri dati in modo più efficace e rapido.
Ad esempio, l'utilizzo della funzione "ORA( )" aiuta a recuperare la data e l'ora correnti:

SELECT NOW( );

Per ottenere solo la parte della data di un "DATETIME", utilizzare solo la funzione "DATE()":

SELECT DATE(NOW( ) );

Per ottenere la data di sistema corrente, utilizzare CURDATE ( ):

SELECT CURDATE();

La funzione "DATE_FORMAT" può essere utilizzata per formattare il valore della data in questo formato; mm/gg/aaaa. Utilizza il modello di formato della data di %m/%d/%Y

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

Se vuoi calcolare il numero di giorni tra due valori di data, usa la funzione 'DATEDIFF':

mysql> SELECT DATEDIFF('2020-09-25', '2021-09-25') days;

L'uso della funzione "DATE_ADD" aiuta ad aggiungere diversi anni, mesi, settimane o giorni:

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

La funzione "DATE_SUB" può essere utilizzata anche per sottrarre un intervallo di date:

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

L'uso della funzione corrispondente in termini di data, mese, trimestre e anno ti aiuterà a ottenere il giorno, il mese, ecc. esatti per un valore di data come mostrato di seguito:

SELECT DAY(‘2000-12-31’) day,
MONTH( ‘2000-12-31’) month
QUARTER(‘2000-12-31’) quarter,
YEAR(‘2000-12-31’) year

Day ǀ month ǀ quarter ǀ year ǀ
31 ǀ 12 ǀ 4 ǀ 2000ǀ

È possibile accedere alle informazioni settimanali sulle funzioni correlate tramite:

SELECT
WEEKDAY(‘2000-12-31’) weekday,
WEEK( ‘2000-12-31’) week,
WEEKOFTHEYEAR(‘2000-12-31’) weekofyear;

weekday ǀ week ǀ weekofyear ǀ
6 ǀ 53 ǀ 52 ǀ

La funzione settimana restituisce sempre un numero di settimana con indice a base zero. Dovrai passare un secondo argomento o passare uno "0" per evitare che ciò accada. Passando "1" verrà restituito il numero della settimana "1-indicizzato".

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

weekday ǀ week ǀ weekofyear ǀ
6 ǀ 52 ǀ 52 ǀ

Conclusione

Questo è un breve tutorial di articolo che copre l'argomento formato della data MySQL. Ci auguriamo che tutti gli aspetti con cui volevi familiarizzare con i formati di data MySQL siano stati coperti. Ricorda di dare un pollice in su tramite la sezione commenti se trovi l'articolo utile.