sql >> Database >  >> RDS >> MariaDB

Hoe TIMESTAMP() werkt in MariaDB

In MariaDB, TIMESTAMP() is een ingebouwde datum- en tijdfunctie die een datetime-waarde retourneert, gebaseerd op zijn argument(en).

Het kan als volgt met één argument of met twee worden gebruikt:

  • Wanneer gebruikt met één argument, retourneert het die datum of datetime-expressie als een datetime-waarde.
  • Indien gebruikt met twee argumenten, voegt het het tweede (time) argument toe aan de eerste (date of datetime) expressie en retourneert het vervolgens de resulterende datetime-waarde.

Syntaxis

Het kan op de volgende twee manieren worden gebruikt:

TIMESTAMP(expr)
TIMESTAMP(expr1,expr2)

Waar expr1 is een datum- of datetime-expressie, en expr2 is een tijduitdrukking om toe te voegen aan expr1 .

Voorbeeld

Hier is een voorbeeld om te demonstreren:

SELECT TIMESTAMP('2030-02-01');

Resultaat:

+-------------------------+
| TIMESTAMP('2030-02-01') |
+-------------------------+
| 2030-02-01 00:00:00     |
+-------------------------+

Datum/tijd-waarden

Hier is een voorbeeld van het doorgeven van een datetime-waarde:

SELECT TIMESTAMP('2030-02-01 10:30:45');

Resultaat:

+----------------------------------+
| TIMESTAMP('2030-02-01 10:30:45') |
+----------------------------------+
| 2030-02-01 10:30:45              |
+----------------------------------+

Tweede argument

Hier is een voorbeeld dat het tweede argument aan het eerste toevoegt:

SELECT TIMESTAMP('2030-02-01 10:30:45', '02:15:15');

Resultaat:

+----------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '02:15:15') |
+----------------------------------------------+
| 2030-02-01 12:46:00                          |
+----------------------------------------------+

Microseconden

Hier is een voorbeeld dat microseconden toevoegt:

SELECT TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456');

Resultaat:

+-----------------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '00:00:00.123456') |
+-----------------------------------------------------+
| 2030-02-01 10:30:45.123456                          |
+-----------------------------------------------------+

Negatieve tijden

Negatieve tijden zijn geldig:

Voorbeeld:

SELECT TIMESTAMP('2030-02-01 10:30:45', '-09:20:00');

Resultaat:

+-----------------------------------------------+
| TIMESTAMP('2030-02-01 10:30:45', '-09:20:00') |
+-----------------------------------------------+
| 2030-02-01 01:10:45                           |
+-----------------------------------------------+

Huidige datum

We kunnen NOW() doorgeven als het datetime-argument om de huidige datum en tijd te gebruiken:

SELECT 
    NOW(),
    TIMESTAMP(NOW(), '10:30:45');

Resultaat:

+---------------------+------------------------------+
| NOW()               | TIMESTAMP(NOW(), '10:30:45') |
+---------------------+------------------------------+
| 2021-05-28 09:25:09 | 2021-05-28 19:55:54          |
+---------------------+------------------------------+

Ongeldige argumenten

Wanneer een ongeldig argument wordt doorgegeven, TIMESTAMP() retourneert null met een waarschuwing:

SELECT TIMESTAMP('Ten Thirty AM');

Resultaat:

+----------------------------+
| TIMESTAMP('Ten Thirty AM') |
+----------------------------+
| NULL                       |
+----------------------------+
1 row in set, 1 warning (0.004 sec)

Controleer de waarschuwing:

SHOW WARNINGS;

Resultaat:

+---------+------+---------------------------------------+
| Level   | Code | Message                               |
+---------+------+---------------------------------------+
| Warning | 1292 | Incorrect time value: 'Ten Thirty AM' |
+---------+------+---------------------------------------+

Ontbrekend argument

TIMESTAMP() . aanroepen met het verkeerde aantal argumenten, of zonder het doorgeven van argumenten, resulteert in een fout:

SELECT TIMESTAMP();

Resultaat:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ')' at line 1

En nog een voorbeeld:

SELECT TIMESTAMP('2020-12-09', '06:30:45', '06:30:45');

Resultaat:

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ' '06:30:45')' at line 1

  1. Retourneer het einde van de maand in SQLite

  2. Postgresql UUID ondersteund door Hibernate?

  3. Moet ik een klasse maken die SQLiteOpenHelper erft voor elke tabel in mijn database?

  4. Hoe vind je de top drie van het hoogste salaris in de emp-tabel in Oracle?