MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Comment SUBTIME() fonctionne dans MariaDB

Dans MariaDB, SUBTIME() est une fonction de date et d'heure intégrée qui soustrait un montant d'une expression d'heure ou de date/heure.

Il vous permet de modifier une expression d'heure ou de date/heure en transmettant cette expression, ainsi qu'une expression d'heure à soustraire de cette expression. Vous pouvez transmettre un montant négatif si vous devez ajouter à l'expression temporelle.

Syntaxe

La syntaxe ressemble à ceci :

SUBTIME(expr1,expr2)

expr1 est une expression d'heure ou de date et d'heure, et expr2 est une expression temporelle.

Exemple

Voici un exemple :

SELECT SUBTIME('10:00:00', '02:30:45');

Résultat :

+---------------------------------+
| SUBTIME('10:00:00', '02:30:45') |
+---------------------------------+
| 07:29:15                        |
+---------------------------------+

Expressions de date/heure

Le premier argument peut également être une expression datetime :

SELECT SUBTIME('2021-05-01 10:00:00', '22:30:45');

Résultat :

+--------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '22:30:45') |
+--------------------------------------------+
| 2021-04-30 11:29:15                        |
+--------------------------------------------+

Dans ce cas, suffisamment de temps a été soustrait pour ramener la date au jour et au mois précédents.

Expressions de temps dans un format plus souple

MariaDB permet l'attribution d'heures dans des formats plus lâches, tels que la suppression des zéros non significatifs et la fourniture d'une valeur pour le jour.

Par conséquent, nous pouvons faire ceci :

SELECT SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456');

Résultat :

+----------------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '366 1:1:1.123456') |
+----------------------------------------------------+
| 2020-04-30 08:58:58.876544                         |
+----------------------------------------------------+

Intervalles négatifs

Fournir un intervalle négatif pour la portion de jour ajoute qui équivaut à l'heure/dateheure.

Exemple :

SELECT SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456');

Résultat :

+-----------------------------------------------------+
| SUBTIME('2021-05-01 10:00:00', '-366 1:1:1.123456') |
+-----------------------------------------------------+
| 2022-05-02 11:01:01.123456                          |
+-----------------------------------------------------+

Arguments nuls

Si un argument est null , le résultat est null :

SELECT 
    SUBTIME('10:00:00', null),
    SUBTIME(null, '02:30:45'),
    SUBTIME(null, null);

Résultat :

+---------------------------+---------------------------+---------------------+
| SUBTIME('10:00:00', null) | SUBTIME(null, '02:30:45') | SUBTIME(null, null) |
+---------------------------+---------------------------+---------------------+
| NULL                      | NULL                      | NULL                |
+---------------------------+---------------------------+---------------------+

Argument manquant

Appel de SUBTIME() avec le mauvais nombre d'arguments, ou sans passage d'arguments, une erreur se produit :

SELECT SUBTIME();

Résultat :

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBTIME'