sql >> Database teknologi >  >> RDS >> MariaDB

4 funktioner, der uddrager mikrosekunder fra en tidsværdi i MariaDB

Nedenfor er 4 funktioner, der gør dig i stand til at returnere mikrosekunderdelen fra en tidsværdi i MariaDB.

MICROSECOND() Funktion

MICROSECOND() funktion returnerer mikrosekunderdelen af ​​en given TIME eller DATETIME udtryk. Den accepterer ét argument, som er det tidspunkt, du vil udtrække mikrosekunderne fra.

Eksempel:

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

Resultat:

+--------------------------------+
| MICROSECOND('10:45:30.123456') |
+--------------------------------+
|                         123456 |
+--------------------------------+

TIME værdier kan være i området '-838:59:59.999999' til '838:59:59.999999' .

TIME værdier kan også være negative. I sådanne tilfælde MICROSECOND() returnerer en positiv værdi.

Her er en negativ tidsværdi med en mikrosekundersdel:

SELECT MICROSECOND('-838:59:59.999999');

Resultat:

+----------------------------------+
| MICROSECOND('-838:59:59.999999') |
+----------------------------------+
|                           999999 |
+----------------------------------+

Mikrosekundersdelen udtrækkes som forventet.

EXTRACT() Funktion

EXTRACT() funktionen giver dig mulighed for at udtrække en specificeret enhed fra dato/tidsværdien. Derfor kan du bruge den til at udtrække mikrosekunderne (såvel som andre enheder) fra tidsværdien.

Eksempel:

SELECT EXTRACT(MICROSECOND FROM '10:45:30.123456');

Resultat:

+---------------------------------------------+
| EXTRACT(MICROSECOND FROM '10:45:30.123456') |
+---------------------------------------------+
|                                      123456 |
+---------------------------------------------+

TIME_FORMAT() Funktion

TIME_FORMAT() funktion giver dig mulighed for at formatere en tidsværdi baseret på en formatstreng. Formatstrengen angiver, hvordan tiden skal formateres.

Du kan derfor bruge denne funktion til at returnere mikrosekunderne (samt timer, minutter og sekunder) fra tidspunktet.

%f formatspecifikationen returnerer mikrosekunderne:

SELECT TIME_FORMAT('10:07:30.003456', '%f');

Resultat:

+--------------------------------------+
| TIME_FORMAT('10:07:30.003456', '%f') |
+--------------------------------------+
| 003456                               |
+--------------------------------------+

Du kan også bruge $s eller $S formatspecifikation for at returnere sekunddelen:

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";

Resultat:

+---------+--------------+-----------+
| Seconds | Microseconds | Both      |
+---------+--------------+-----------+
| 30      | 123456       | 30.123456 |
+---------+--------------+-----------+

TIME_FORMAT() funktion accepterer et undersæt af formatstrengene, der kan bruges med DATE_FORMAT() fungere. Se MariaDB Format Strings for en komplet liste over formatstrenge/specifikationer, der kan bruges med DATE_FORMAT() . TIME_FORMAT() Funktionen accepterer kun formatspecifikationer for timer, minutter og sekunder/undersekunder. Enhver anden formatangivelse resulterer i null eller 0 bliver returneret.

DATE_FORMAT() Funktion

DATE_FORMAT() funktionen giver dig mulighed for at formatere en dato eller dato-tidsværdi baseret på en formatstreng. Formatstrengen angiver, hvordan dato/klokkeslæt skal formateres.

Vi kan derfor bruge de samme formatspecifikationer, som vi brugte med TIME_FORMAT() funktion i det foregående eksempel. Dog DATE_FORMAT() accepterer ikke en TIME værdi, så vi bliver nødt til at sende en DATETIME værdi.

SELECT DATE_FORMAT('2023-01-01 10:07:30.007123', '%f');

Resultat:

+-------------------------------------------------+
| DATE_FORMAT('2023-01-01 10:07:30.007123', '%f') |
+-------------------------------------------------+
| 007123                                          |
+-------------------------------------------------+

Sender kun en TIME værdi virker ikke med denne funktion:

SELECT DATE_FORMAT('10:07:30.007123', '%f');

Resultat:

+--------------------------------------+
| DATE_FORMAT('10:07:30.007123', '%f') |
+--------------------------------------+
| NULL                                 |
+--------------------------------------+
1 row in set, 1 warning (0.003 sec)

Lad os se advarslen:

SHOW WARNINGS;

Resultat:

+---------+------+---------------------------------------------+
| Level   | Code | Message                                     |
+---------+------+---------------------------------------------+
| Warning | 1292 | Incorrect datetime value: '10:07:30.007123' |
+---------+------+---------------------------------------------+

  1. 7 fakta om SQL Server-synonymer, du bør kende

  2. Oracle ydeevne og tuning Quiz

  3. Docker - Hvordan kan man køre kommandoen psql i postgres containeren?

  4. Diagnosticering af dødvande i SQL Server 2005