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

Jak MICROSECOND() funguje v MariaDB

V MariaDB, MICROSECOND() je vestavěná funkce data a času, která vrací mikrosekundovou část daného časového výrazu.

Přijímá jeden argument, což je čas, ze kterého chcete extrahovat mikrosekundy.

Sekundy jsou vráceny jako číslo v rozsahu 0 na 999999 .

Syntaxe

Syntaxe vypadá takto:

MICROSECOND(time)

Kde time je časový výraz pro získání mikrosekund.

Příklad

Zde je příklad:

SELECT MICROSECOND('10:30:45.123456');

Výsledek:

+--------------------------------+
| MICROSECOND('10:30:45.123456') |
+--------------------------------+
|                         123456 |
+--------------------------------+

Následující časový výraz výslovně nezahrnuje mikrosekundy:

SELECT MICROSECOND('10:30:45');

Výsledek:

+-------------------------+
| MICROSECOND('10:30:45') |
+-------------------------+
|                       0 |
+-------------------------+

Takže výsledek je 0 .

Hodnoty data a času

Funguje také s hodnotami datetime:

SELECT MICROSECOND('2030-02-01 10:30:45.123456');

Výsledek:

+-------------------------------------------+
| MICROSECOND('2030-02-01 10:30:45.123456') |
+-------------------------------------------+
|                                    123456 |
+-------------------------------------------+

Hodnoty data

Předání data bez času vrátí 0 , spolu s varováním.

Příklad:

SELECT MICROSECOND('2025-10-31');

Výsledek:

+---------------------------+
| MICROSECOND('2025-10-31') |
+---------------------------+
|                         0 |
+---------------------------+
1 row in set, 1 warning (0.001 sec)

Varování můžeme vidět spuštěním následujícího kódu:

SHOW WARNINGS;

Výsledek:

+---------+------+----------------------------------------------+
| Level   | Code | Message                                      |
+---------+------+----------------------------------------------+
| Warning | 1292 | Truncated incorrect time value: '2025-10-31' |
+---------+------+----------------------------------------------+

Aktuální datum

Můžeme předat NOW() jako argument datetime pro použití aktuálního času:

SELECT 
    NOW(6),
    MICROSECOND(NOW(6));

Výsledek:

+----------------------------+---------------------+
| NOW(6)                     | MICROSECOND(NOW(6)) |
+----------------------------+---------------------+
| 2021-05-16 14:41:09.098168 |               98168 |
+----------------------------+---------------------+

V tomto případě jsem uvedl, že NOW() by měl vrátit zlomkovou přesnost 6 (což umožňuje vrátit mikrosekundy).

Tady je to opět s nižší přesností:

SELECT 
    NOW(3),
    MICROSECOND(NOW(3));

Výsledek:

+-------------------------+---------------------+
| NOW(3)                  | MICROSECOND(NOW(3)) |
+-------------------------+---------------------+
| 2021-05-16 14:42:35.831 |              831000 |
+-------------------------+---------------------+

Neplatné argumenty

Při předání neplatného časového argumentu MICROSECOND() vrátí null :

SELECT MICROSECOND('10:75:00.123456');

Výsledek:

+--------------------------------+
| MICROSECOND('10:75:00.123456') |
+--------------------------------+
|                           NULL |
+--------------------------------+

Chybí argument

Volání MICROSECOND() s nesprávným počtem argumentů nebo bez předání jakýchkoli argumentů vede k chybě:

SELECT MICROSECOND();

Výsledek:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

A další příklad:

SELECT MICROSECOND('10:30:45.123', '06:30:45.123');

Výsledek:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45.123')' at line 1

  1. Jak nainstalovat SQL * PLUS klienta v linuxu

  2. Hierarchické dotazy v SQL Server 2005

  3. Jak generovat testovací data v SQL Server

  4. Jak nainstalovat Apache Cassandra na Ubuntu 20.10/Ubuntu 20.04