sql >> Database >  >> RDS >> MariaDB

Hoe MICROSECOND() werkt in MariaDB

In MariaDB, MICROSECOND() is een ingebouwde datum- en tijdfunctie die het microsecondengedeelte van een bepaalde tijduitdrukking retourneert.

Het accepteert één argument, namelijk de tijd waaruit je de microseconden wilt extraheren.

De seconden worden geretourneerd als een getal in het bereik 0 tot 999999 .

Syntaxis

De syntaxis gaat als volgt:

MICROSECOND(time)

Waar time is de tijduitdrukking om de microseconden uit te halen.

Voorbeeld

Hier is een voorbeeld:

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

Resultaat:

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

De volgende tijdexpressie omvat niet expliciet microseconden:

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

Resultaat:

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

Het resultaat is dus 0 .

Datum/tijd-waarden

Het werkt ook met datetime-waarden:

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

Resultaat:

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

Datumwaarden

Een datum doorgeven zonder een tijd geeft 0 , samen met een waarschuwing.

Voorbeeld:

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

Resultaat:

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

We kunnen de waarschuwing zien door de volgende code uit te voeren:

SHOW WARNINGS;

Resultaat:

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

Huidige datum

We kunnen NOW() doorgeven als het datetime-argument om de huidige tijd te gebruiken:

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

Resultaat:

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

In dit geval heb ik gespecificeerd dat NOW() moet een fractionele precisie van 6 return retourneren (waardoor het microseconden retourneert).

Hier is het weer met een lagere precisie:

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

Resultaat:

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

Ongeldige argumenten

Wanneer een ongeldig tijdargument is doorgegeven, MICROSECOND() retourneert null :

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

Resultaat:

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

Ontbrekend argument

MICROSECOND() . aanroepen met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT MICROSECOND();

Resultaat:

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

En nog een voorbeeld:

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

Resultaat:

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. PostgreSQL:welk gegevenstype moet worden gebruikt voor valuta?

  2. Een UPDATE Pass-Through-query uitvoeren in SQL Server

  3. Detecteren of de rij is bijgewerkt of ingevoegd

  4. SQL Server 2017 herstellen