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)
Où 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'