sql >> Databasteknik >  >> RDS >> MariaDB

Hur NOW() fungerar i MariaDB

I MariaDB, NOW() är en inbyggd datum- och tidsfunktion som returnerar aktuellt datum och tid.

Returvärdet returneras i 'YYYY-MM-DD HH:MM:SS' eller YYYYMMDDHHMMSS.uuuuuu format, beroende på om funktionen används i en sträng eller numerisk kontext.

Returvärdet uttrycks i den aktuella tidszonen.

Du har också möjlighet att ange mikrosekundprecisionen.

Syntax

Syntaxen ser ut så här:

NOW([precision])

Där precision är ett valfritt argument som anger mikrosekundsprecisionen.

Den har också följande synonymer:

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

Exempel

Här är ett exempel:

SELECT NOW();

Resultat:

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

Numerisk kontext

När NOW() används i ett numeriskt sammanhang, är resultatet i YYYYMMDDHHMMSS.uuuuuu format.

Exempel:

SELECT
    NOW(),
    NOW() + 0;

Resultat:

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

Precision

Här är ett exempel på att specificera mikrosekundprecision:

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

Resultat:

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

Det maximala värdet för mikrosekundprecisionen är 6. Så här händer när en högre siffra passeras för precisionen:

SELECT NOW(12);

Resultat:

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

Synonymer

Som framgår av syntaxen ovan finns det ett gäng synonymer för NOW() .

Här är ett exempel som använder de olika synonymerna:

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

Resultat (med vertikal utdata):

  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

Lägga till i den aktuella tidsstämpeln

Det finns många sätt att utföra aritmetik på datetime-värden i MariaDB.

Här är ett exempel på hur man använder additionsoperatorn (+ ) för att lägga till 2 dagar till datumet:

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

Resultat:

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

Se även funktioner som DATE_ADD() och ADDDATE() för ett alternativt sätt att lägga till det aktuella datumet.

Att dra av från det aktuella datumet

Här är ett exempel på användning av subtraktionsoperatorn (- ) för att subtrahera 10 dagar från det aktuella datumet:

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

Resultat:

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

Se funktioner som DATE_SUB() och SUBDATE() för ett alternativt sätt att subtrahera från det aktuella datumet.


  1. Använda ODBC med Salesforce och OneLogin Single Sign On (SSO)

  2. FieldShield SDK

  3. Kan inte öppna databasen i läs/skrivläge

  4. 2 sätt att lägga till ett procenttecken till ett tal i SQLite