MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

4 funkcje, które wyodrębniają mikrosekundy z wartości czasu w MariaDB

Poniżej znajdują się 4 funkcje, które umożliwiają zwrócenie części mikrosekundowej z wartości czasu w MariaDB.

MICROSECOND() Funkcja

MICROSECOND() funkcja zwraca mikrosekundową część podanego TIME lub DATETIME wyrażenie. Przyjmuje jeden argument, czyli czas, z którego chcesz wyodrębnić mikrosekundy.

Przykład:

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

Wynik:

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

TIME wartości mogą należeć do zakresu '-838:59:59.999999' do '838:59:59.999999' .

TIME wartości mogą być również ujemne. W takich przypadkach MICROSECOND() zwraca wartość dodatnią.

Oto ujemna wartość czasu z częścią w mikrosekundach:

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

Wynik:

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

Część mikrosekundowa jest wyodrębniana zgodnie z oczekiwaniami.

EXTRACT() Funkcja

EXTRACT() funkcja pozwala na wyodrębnienie określonej jednostki z wartości daty/czasu. Dlatego możesz go użyć do wyodrębnienia mikrosekund (jak również innych jednostek) z wartości czasu.

Przykład:

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

Wynik:

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

TIME_FORMAT() Funkcja

TIME_FORMAT() funkcja pozwala sformatować wartość czasu na podstawie ciągu formatującego. Ciąg formatu określa sposób formatowania czasu.

Możesz zatem użyć tej funkcji, aby zwrócić mikrosekundy (a także godziny, minuty i sekundy) z czasu.

%f specyfikator formatu zwraca mikrosekundy:

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

Wynik:

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

Możesz także użyć $s lub $S specyfikator formatu do zwrócenia drugiej części:

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

Wynik:

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

TIME_FORMAT() funkcja akceptuje podzbiór ciągów formatujących, które mogą być używane z DATE_FORMAT() funkcjonować. Zobacz ciągi formatujące MariaDB, aby uzyskać pełną listę ciągów formatujących/specyfikatorów, których można używać z DATE_FORMAT() . TIME_FORMAT() funkcja akceptuje tylko specyfikatory formatu dla godzin, minut i sekund/subsekund. Każdy inny specyfikator formatu daje wynik null lub 0 zostanie zwrócony.

DATE_FORMAT() Funkcja

DATE_FORMAT() Funkcja umożliwia sformatowanie wartości daty lub daty i godziny na podstawie ciągu formatującego. Ciąg formatu określa sposób formatowania daty/godziny.

Dlatego możemy użyć tych samych specyfikatorów formatu, których użyliśmy w funkcji TIME_FORMAT() funkcji w poprzednim przykładzie. Jednak DATE_FORMAT() nie akceptuje TIME wartość, więc będziemy musieli przekazać DATETIME wartość.

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

Wynik:

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

Mija tylko TIME wartość nie działa z tą funkcją:

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

Wynik:

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

Zobaczmy ostrzeżenie:

SHOW WARNINGS;

Wynik:

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak NOT REGEXP działa w MariaDB

  2. Automatyzacja baz danych za pomocą Puppet:wdrażanie replikacji MySQL i MariaDB

  3. Jak wdrożyć gotowy do produkcji klaster MySQL lub MariaDB Galera za pomocą ClusterControl

  4. Uruchamianie ProxySQL jako kontenera pomocniczego na Kubernetes

  5. Operatory zbiorów SQL MariaDB