sql >> Database >  >> RDS >> MariaDB

Hoe NU() werkt in MariaDB

In MariaDB, NOW() is een ingebouwde datum- en tijdfunctie die de huidige datum en tijd retourneert.

De geretourneerde waarde wordt geretourneerd in 'YYYY-MM-DD HH:MM:SS' of YYYYMMDDHHMMSS.uuuuuu formaat, afhankelijk van of de functie in een tekenreeks of in een numerieke context wordt gebruikt.

De retourwaarde wordt uitgedrukt in de huidige tijdzone.

Je hebt ook de mogelijkheid om de precisie van microseconden op te geven.

Syntaxis

De syntaxis gaat als volgt:

NOW([precision])

Waar precision is een optioneel argument dat de precisie van microseconden specificeert.

Het heeft ook de volgende synoniemen:

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

Voorbeeld

Hier is een voorbeeld:

SELECT NOW();

Resultaat:

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

Numerieke context

Wanneer NOW() wordt gebruikt in een numerieke context, het resultaat is in YYYYMMDDHHMMSS.uuuuuu formaat.

Voorbeeld:

SELECT
    NOW(),
    NOW() + 0;

Resultaat:

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

Precisie

Hier is een voorbeeld van het specificeren van microseconde precisie:

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

Resultaat:

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

De maximale waarde voor de precisie van microseconden is 6. Dit gebeurt er als een hoger getal wordt doorgegeven voor de precisie:

SELECT NOW(12);

Resultaat:

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

Synoniemen

Zoals te zien is in de bovenstaande syntaxis, zijn er een aantal synoniemen voor NOW() .

Hier is een voorbeeld dat de verschillende synoniemen gebruikt:

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

Resultaat (met verticale uitvoer):

  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

Toevoegen aan de huidige tijdstempel

Er zijn veel manieren om berekeningen uit te voeren op datetime-waarden in MariaDB.

Hier is een voorbeeld van het gebruik van de opteloperator (+ ) om 2 dagen aan de datum toe te voegen:

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

Resultaat:

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

Zie ook functies zoals DATE_ADD() en ADDDATE() voor een alternatieve manier om toe te voegen aan de huidige datum.

Aftrekken van de huidige datum

Hier is een voorbeeld van het gebruik van de aftrekkingsoperator (- ) om 10 dagen van de huidige datum af te trekken:

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

Resultaat:

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

Zie functies zoals DATE_SUB() en SUBDATE() voor een alternatieve manier om af te trekken van de huidige datum.


  1. Concat-veldwaarde naar tekenreeks in SQL Server

  2. Hoe een kolom wijzigen en de standaardwaarde wijzigen?

  3. Hoe de strikte SQL-modus in MySQL 5.7 uit te schakelen

  4. Hoe te ontsnappen aan het vraagteken (?) -teken met Spring JpaRepository