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

Unità di data e ora in MySQL (elenco completo)

Ecco un elenco di unità che possono essere utilizzate nelle funzioni datatime e intervallo di MySQL.

unit Valore Previsto expr Formato
MICROSECOND MICROSECONDS
SECOND SECONDS
MINUTE MINUTES
HOUR HOURS
DAY DAYS
WEEK WEEKS
MONTH MONTHS
QUARTER QUARTERS
YEAR YEARS
SECOND_MICROSECOND 'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND 'MINUTES:SECONDS.MICROSECONDS'
MINUTE_SECOND 'MINUTES:SECONDS'
HOUR_MICROSECOND 'HOURS:MINUTES:SECONDS.MICROSECONDS'
HOUR_SECOND 'HOURS:MINUTES:SECONDS'
HOUR_MINUTE 'HOURS:MINUTES'
DAY_MICROSECOND 'DAYS HOURS:MINUTES:SECONDS.MICROSECONDS'
DAY_SECOND 'DAYS HOURS:MINUTES:SECONDS'
DAY_MINUTE 'DAYS HOURS:MINUTES'
DAY_HOUR 'DAYS HOURS'
YEAR_MONTH 'YEARS-MONTHS'

Queste unità possono essere utilizzate con il + e - operatori quando si eseguono operazioni aritmetiche sulle date, con funzioni come ADDDATE() , SUBDATE() , DATE_ADD() , DATE_SUB() e EXTRACT() .

Possono essere utilizzati anche in ON SCHEDULE clausola del CREATE_EVENT() e ALTER_EVENT() funzioni.

Le prime nove unità possono essere utilizzate con TIMESTAMPADD() e TIMESTAMPDIFF() (queste due funzioni non supportano le unità composite al momento della scrittura).

Le unità che contengono un trattino basso sono unità composite. Questi sono costituiti da più di un'unità di tempo di base. Questi possono essere pensati come un modo abbreviato per specificare più unità in una volta sola. Ogni unità può essere separata da qualsiasi carattere di punteggiatura.

Esempi

Ecco un esempio di aggiunta di un anno a un'espressione datetime:

SELECT '2035-01-01 01:30:45' + INTERVAL 1 YEAR;

Risultato:

2036-01-01 01:30:45

In questo caso utilizziamo il + operatore per eseguire l'aggiunta.

Funzioni data/ora

Le unità di data e ora possono essere utilizzate con varie funzioni di data.

Eccolo con il DATE_ADD() funzione:

SELECT DATE_ADD('2035-01-01 01:30:45', INTERVAL 1 YEAR);

Risultato:

2036-01-01 01:30:45

Unità composite

Ecco un esempio che utilizza unità composite:

SELECT 
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:2' YEAR_MONTH) AS "YEAR_MONTH",
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:25:35' HOUR_SECOND) AS "HOUR_SECOND",
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1:30:25' DAY_MINUTE) AS "DAY_MINUTE";

Risultato:

+---------------------+---------------------+---------------------+
| YEAR_MONTH          | HOUR_SECOND         | DAY_MINUTE          |
+---------------------+---------------------+---------------------+
| 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 |
+---------------------+---------------------+---------------------+

I numeri interi possono essere separati da qualsiasi carattere di punteggiatura. Pertanto, potremmo sostituire i due punti con punti per ottenere lo stesso risultato:

SELECT 
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.2' YEAR_MONTH) AS "YEAR_MONTH",
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.25.35' HOUR_SECOND) AS "HOUR_SECOND",
    DATE_ADD('2035-01-01 01:00:00', INTERVAL '1.30.25' DAY_MINUTE) AS "DAY_MINUTE";

Risultato:

+---------------------+---------------------+---------------------+
| YEAR_MONTH          | HOUR_SECOND         | DAY_MINUTE          |
+---------------------+---------------------+---------------------+
| 2036-03-01 01:00:00 | 2035-01-01 02:25:35 | 2035-01-03 07:25:00 |
+---------------------+---------------------+---------------------+