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

4 Funkce, které vracejí sekundovou část z časové hodnoty v MariaDB

Níže jsou uvedeny 4 funkce, které vám umožňují vrátit část sekund z časové hodnoty v MariaDB.

SECOND() Funkce

SECOND() funkce vrací sekundovou část daného TIME nebo DATETIME výraz. Přijímá jeden argument, což je čas, ze kterého chcete extrahovat sekundy.

Příklad:

SELECT SECOND('03:45:30');

Výsledek:

+--------------------+
| SECOND('03:45:30') |
+--------------------+
|                 30 |
+--------------------+

TIME hodnoty mohou být v rozsahu '-838:59:59.999999' na '838:59:59.999999' . To zahrnuje mikrosekundy, ale SECOND() vrátí pouze sekundovou část (je zde MICROSECOND() funkce pro vracení mikrosekund).

TIME hodnoty mohou být i záporné. V takových případech SECOND() vrátí kladnou hodnotu.

Zde je záporná časová hodnota s částí v mikrosekundách:

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

Výsledek:

+-----------------------------+
| SECOND('-838:59:59.999999') |
+-----------------------------+
|                          59 |
+-----------------------------+

Sekundová čá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 extrahování sekund (stejně jako jiných jednotek) z časové hodnoty.

Příklad:

SELECT EXTRACT(SECOND FROM '10:47:01');

Výsledek:

+---------------------------------+
| EXTRACT(SECOND FROM '10:47:01') |
+---------------------------------+
|                               1 |
+---------------------------------+

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í sekund (stejně jako minut a hodin) od času.

%s a %S oba specifikátory formátu vracejí sekundy se dvěma číslicemi:

SELECT 
    TIME_FORMAT('10:07:30', '%s'),
    TIME_FORMAT('10:07:30', '%S');

Výsledek:

+-------------------------------+-------------------------------+
| TIME_FORMAT('10:07:30', '%s') | TIME_FORMAT('10:07:30', '%S') |
+-------------------------------+-------------------------------+
| 30                            | 30                            |
+-------------------------------+-------------------------------+

Můžete také použít $f specifikátor formátu pro vrácení šestimístných dílčích sekund:

SELECT 
    TIME_FORMAT('10:07:30.123456', '%f') AS "Microseconds",
    TIME_FORMAT('10:07:30.123456', '%s.%f') AS "Both";

Výsledek:

+--------------+-----------+
| Microseconds | Both      |
+--------------+-----------+
| 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', '%s');

Výsledek:

+------------------------------------------+
| DATE_FORMAT('2023-01-01 10:07:30', '%s') |
+------------------------------------------+
| 30                                       |
+------------------------------------------+

Předání jen TIME value s touto funkcí nefunguje:

SELECT DATE_FORMAT('10:07:30', '%s') AS '%s';

Výsledek:

+------+
| %s   |
+------+
| 00   |
+------+

  1. Jak ručně zkomprimovat a opravit databázi v Accessu 2016

  2. Dynamické monitorování instancí PostgreSQL pomocí pg_top

  3. Ukládání obrázků do polí bajtů v databázi PostgreSQL

  4. Jak zrušit operaci INSERT ve spouštěči MySql?