Di seguito sono elencate 4 funzioni che consentono di restituire la parte di microsecondi da un valore di tempo in MariaDB.
Il MICROSECOND()
Funzione
Il MICROSECOND()
la funzione restituisce la parte in microsecondi di un dato TIME
o DATETIME
espressione. Accetta un argomento, che è il tempo da cui vuoi estrarre i microsecondi.
Esempio:
SELECT MICROSECOND('10:45:30.123456');
Risultato:
+--------------------------------+ | MICROSECOND('10:45:30.123456') | +--------------------------------+ | 123456 | +--------------------------------+
TIME
i valori possono essere compresi nell'intervallo '-838:59:59.999999'
a '838:59:59.999999'
.
TIME
i valori possono anche essere negativi. In questi casi, MICROSECOND()
restituisce un valore positivo.
Ecco un valore temporale negativo con una parte di microsecondi:
SELECT MICROSECOND('-838:59:59.999999');
Risultato:
+----------------------------------+ | MICROSECOND('-838:59:59.999999') | +----------------------------------+ | 999999 | +----------------------------------+
La parte dei microsecondi viene estratta come previsto.
Il EXTRACT()
Funzione
Il EXTRACT()
la funzione consente di estrarre un'unità specificata dal valore di data/ora. Pertanto, puoi usarlo per estrarre i microsecondi (così come altre unità) dal valore del tempo.
Esempio:
SELECT EXTRACT(MICROSECOND FROM '10:45:30.123456');
Risultato:
+---------------------------------------------+ | EXTRACT(MICROSECOND FROM '10:45:30.123456') | +---------------------------------------------+ | 123456 | +---------------------------------------------+
Il TIME_FORMAT()
Funzione
Il TIME_FORMAT()
La funzione consente di formattare un valore di tempo in base a una stringa di formato. La stringa di formato specifica come deve essere formattata l'ora.
Puoi quindi utilizzare questa funzione per restituire i microsecondi (oltre a ore, minuti e secondi) dall'ora.
Il %f
l'identificatore di formato restituisce i microsecondi:
SELECT TIME_FORMAT('10:07:30.003456', '%f');
Risultato:
+--------------------------------------+ | TIME_FORMAT('10:07:30.003456', '%f') | +--------------------------------------+ | 003456 | +--------------------------------------+
Puoi anche usare $s
o $S
identificatore di formato per restituire la parte dei secondi:
SELECT
TIME_FORMAT('10:07:30.123456', '%s') AS "Seconds",
TIME_FORMAT('10:07:30.123456', '%f') AS "Microseconds",
TIME_FORMAT('10:07:30.123456', '%s.%f') AS "Both";
Risultato:
+---------+--------------+-----------+ | Seconds | Microseconds | Both | +---------+--------------+-----------+ | 30 | 123456 | 30.123456 | +---------+--------------+-----------+
Il TIME_FORMAT()
la funzione accetta un sottoinsieme delle stringhe di formato che possono essere utilizzate con DATE_FORMAT()
funzione. Consulta le stringhe di formato MariaDB per un elenco completo di stringhe di formato/specificatori che possono essere utilizzati con DATE_FORMAT()
. Il TIME_FORMAT()
la funzione accetta solo identificatori di formato per ore, minuti e secondi/secondi secondari. Qualsiasi altro identificatore di formato restituisce null
o 0
in fase di restituzione.
Il DATE_FORMAT()
Funzione
Il DATE_FORMAT()
La funzione consente di formattare un valore di data o data e ora in base a una stringa di formato. La stringa di formato specifica come formattare la data/ora.
Possiamo quindi usare gli stessi identificatori di formato che abbiamo usato con TIME_FORMAT()
funzione nell'esempio precedente. Tuttavia, DATE_FORMAT()
non accetta un TIME
valore, quindi dovremo passare un DATETIME
valore.
SELECT DATE_FORMAT('2023-01-01 10:07:30.007123', '%f');
Risultato:
+-------------------------------------------------+ | DATE_FORMAT('2023-01-01 10:07:30.007123', '%f') | +-------------------------------------------------+ | 007123 | +-------------------------------------------------+
Passando solo un TIME
value non funziona con questa funzione:
SELECT DATE_FORMAT('10:07:30.007123', '%f');
Risultato:
+--------------------------------------+ | DATE_FORMAT('10:07:30.007123', '%f') | +--------------------------------------+ | NULL | +--------------------------------------+ 1 row in set, 1 warning (0.003 sec)
Vediamo l'avviso:
SHOW WARNINGS;
Risultato:
+---------+------+---------------------------------------------+ | Level | Code | Message | +---------+------+---------------------------------------------+ | Warning | 1292 | Incorrect datetime value: '10:07:30.007123' | +---------+------+---------------------------------------------+