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

Jak NOW() funguje v MariaDB

V MariaDB NOW() je vestavěná funkce data a času, která vrací aktuální datum a čas.

Vrácená hodnota je vrácena v 'YYYY-MM-DD HH:MM:SS' nebo YYYYMMDDHHMMSS.uuuuuu formát, v závislosti na tom, zda je funkce použita v řetězcovém nebo číselném kontextu.

Vrácená hodnota je vyjádřena v aktuálním časovém pásmu.

Máte také možnost zadat přesnost na mikrosekundy.

Syntaxe

Syntaxe vypadá takto:

NOW([precision])

Kde precision je volitelný argument, který určuje přesnost na mikrosekundy.

Má také následující synonyma:

CURRENT_TIMESTAMP
CURRENT_TIMESTAMP([precision])
LOCALTIME
LOCALTIME([precision])
LOCALTIMESTAMP
LOCALTIMESTAMP([precision])

Příklad

Zde je příklad:

SELECT NOW();

Výsledek:

+---------------------+
| NOW()               |
+---------------------+
| 2021-05-09 10:12:39 |
+---------------------+

Číselný kontext

Když NOW() se používá v číselném kontextu, výsledek je v YYYYMMDDHHMMSS.uuuuuu formát.

Příklad:

SELECT
    NOW(),
    NOW() + 0;

Výsledek:

+---------------------+----------------+
| NOW()               | NOW() + 0      |
+---------------------+----------------+
| 2021-05-09 10:13:10 | 20210509101310 |
+---------------------+----------------+

Přesnost

Zde je příklad zadání přesnosti na mikrosekundy:

SELECT
    NOW(6),
    NOW(6) + 0;

Výsledek:

+----------------------------+-----------------------+
| NOW(6)                     | NOW(6) + 0            |
+----------------------------+-----------------------+
| 2021-05-09 10:13:30.619522 | 20210509101330.619522 |
+----------------------------+-----------------------+

Maximální hodnota pro přesnost na mikrosekundy je 6. Co se stane, když je pro přesnost předáno vyšší číslo:

SELECT NOW(12);

Výsledek:

ERROR 1426 (42000): Too big precision 12 specified for 'current_timestamp'. Maximum is 6

Synonyma

Jak je vidět ve výše uvedené syntaxi, existuje spousta synonym pro NOW() .

Zde je příklad, který používá různá synonyma:

SELECT 
    CURRENT_TIMESTAMP,
    CURRENT_TIMESTAMP(),
    LOCALTIME,
    LOCALTIME(),
    LOCALTIMESTAMP,
    LOCALTIMESTAMP();

Výsledek (při použití vertikálního výstupu):

  CURRENT_TIMESTAMP: 2021-05-09 10:24:53
CURRENT_TIMESTAMP(): 2021-05-09 10:24:53
          LOCALTIME: 2021-05-09 10:24:53
        LOCALTIME(): 2021-05-09 10:24:53
     LOCALTIMESTAMP: 2021-05-09 10:24:53
   LOCALTIMESTAMP(): 2021-05-09 10:24:53

Přidání k aktuálnímu časovému razítku

Existuje mnoho způsobů, jak provádět aritmetiku hodnot data a času v MariaDB.

Zde je příklad použití operátoru sčítání (+ ), chcete-li k datu přidat 2 dny:

SELECT 
    NOW(),
    NOW() + INTERVAL 2 DAY;

Výsledek:

+---------------------+------------------------+
| NOW()               | NOW() + INTERVAL 2 DAY |
+---------------------+------------------------+
| 2021-05-09 10:17:39 | 2021-05-11 10:17:39    |
+---------------------+------------------------+

Viz také funkce jako DATE_ADD() a ADDDATE() pro alternativní způsob přidání k aktuálnímu datu.

Odečítání od aktuálního data

Zde je příklad použití operátoru odčítání (- ) pro odečtení 10 dnů od aktuálního data:

SELECT 
    NOW(),
    NOW() - INTERVAL 10 DAY;

Výsledek:

+---------------------+-------------------------+
| NOW()               | NOW() - INTERVAL 10 DAY |
+---------------------+-------------------------+
| 2021-05-09 10:19:35 | 2021-04-29 10:19:35     |
+---------------------+-------------------------+

Viz funkce jako DATE_SUB() a SUBDATE() pro alternativní způsob odečítání od aktuálního data.


  1. Vícevláknová C# aplikace s voláním databáze SQL Server

  2. Uživatelské heslo hosta v 11i/R12

  3. 4 způsoby, jak vypsat všechny tabulky v databázi MySQL

  4. Získejte poslední vložené ID pomocí Mysql