Níže jsou uvedeny 4 funkce, které vám umožňují vrátit část mikrosekund z časové hodnoty v MariaDB.
MICROSECOND()
Funkce
MICROSECOND()
funkce vrací mikrosekundovou část daného TIME
nebo DATETIME
výraz. Přijímá jeden argument, což je čas, ze kterého chcete extrahovat mikrosekundy.
Příklad:
SELECT MICROSECOND('10:45:30.123456');
Výsledek:
+--------------------------------+| MICROSECOND('10:45:30.123456') |+--------------------------------+| 123456 |+--------------------------------+
TIME
hodnoty mohou být v rozsahu '-838:59:59.999999'
na '838:59:59.999999'
.
TIME
hodnoty mohou být i záporné. V takových případech MICROSECOND()
vrátí kladnou hodnotu.
Zde je záporná časová hodnota s částí v mikrosekundách:
SELECT MICROSECOND('-838:59:59.999999');
Výsledek:
+----------------------------------+| MICROSECOND('-838:59:59.999999') |+----------------------------------+| 999999 |+----------------------------------+
Mikrosekundová část je extrahována podle očekávání.
EXTRACT()
Funkce
EXTRACT()
Funkce umožňuje extrahovat zadanou jednotku z hodnoty data/času. Proto jej můžete použít k extrakci mikrosekund (stejně jako jiných jednotek) z časové hodnoty.
Příklad:
SELECT EXTRACT(MICROSECOND FROM '10:45:30.123456');
Výsledek:
+---------------------------------------------+ | EXTRAKT (MIKROKRUHÁ Z '10:45:30.123456') |+------------------------------------- ---------+| 123456 |+---------------------------------------------+
TIME_FORMAT()
Funkce
TIME_FORMAT()
Funkce umožňuje formátovat časovou hodnotu na základě formátovacího řetězce. Formátovací řetězec určuje, jak má být formátován čas.Tuto funkci tedy můžete použít k vrácení mikrosekund (a také hodin, minut a sekund) z času.
%f
specifikátor formátu vrací mikrosekundy:SELECT TIME_FORMAT('10:07:30.003456', '%f');
Výsledek:
+--------------------------------------+| TIME_FORMAT('10:07:30.003456', '%f') |+---------------------------------- -----+| 003456 |+--------------------------------------+Můžete také použít
$s
nebo$S
specifikátor formátu pro návrat sekundové části: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";
Výsledek:
+---------+--------------+-----------+| Vteřiny | Mikrosekundy | Oba |+---------+--------------+-----------+| 30 | 123456 | 30,123456 |+---------+--------------+-----------+
TIME_FORMAT()
funkce přijímá podmnožinu formátovacích řetězců, které lze použít sDATE_FORMAT()
funkce. Úplný seznam formátovacích řetězců/specifikátorů, které lze použít sDATE_FORMAT()
, najdete v části MariaDB Format Strings .TIME_FORMAT()
funkce přijímá pouze specifikátory formátu pro hodiny, minuty a sekundy/subsekundy. Jakýkoli jiný specifikátor formátu má za následeknull
nebo0
se vrací.
DATE_FORMAT()
Funkce
DATE_FORMAT()
Funkce umožňuje formátovat hodnotu data nebo data a času na základě formátovacího řetězce. Formátovací řetězec určuje, jak má být formátován datum/čas.Můžeme tedy použít stejné specifikátory formátu, které jsme použili u
TIME_FORMAT()
funkce v předchozím příkladu. NicméněDATE_FORMAT()
nepřijímáTIME
hodnotu, takže budeme muset předatDATETIME
hodnotu.SELECT DATE_FORMAT('2023-01-01 10:07:30.007123', '%f');
Výsledek:
+---------------------------------------------- ---+| DATE_FORMAT('2023-01-01 10:07:30.007123', '%f') |+----------------------------- ----------------------+| 007123 |+----------------------------------------------- --+Předání jen
TIME
value s touto funkcí nefunguje:SELECT DATE_FORMAT('10:07:30.007123', '%f');
Výsledek:
+--------------------------------------+| DATE_FORMAT('10:07:30.007123', '%f') |+---------------------------------- -----+| NULL |+--------------------------------------+1 řádek v sadě, 1 varování ( 0,003 s)Podívejme se na varování:
SHOW WARNINGS;
Výsledek:
+---------+------+----------------------------- -----------------+| Úroveň | Kód | Zpráva |+---------+------+------------------------------ ----------------+| Upozornění | 1292 | Nesprávná hodnota data a času:'10:07:30.007123' |+---------+------+-------------------- -------------------------+