sql >> Databáze >  >> RDS >> MariaDB

4 Funkce, které extrahují mikrosekundy z časové hodnoty v MariaDB

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 s DATE_FORMAT() funkce. Úplný seznam formátovacích řetězců/specifikátorů, které lze použít s DATE_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ásledek null nebo 0 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ředat DATETIME 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' |+---------+------+-------------------- -------------------------+

  1. Převeďte varchar na datetime v SQL Server

  2. Jak vložit soubory BLOB a CLOB do MySQL?

  3. Umístění MySQL my.ini

  4. Jak řešit problémy s ORA-02049 a se zámkem obecně s Oracle