Dans MySQL, le TIMESTAMP()
La fonction renvoie une valeur datetime basée sur le ou les arguments transmis. Vous pouvez fournir un argument ou deux. Si vous en fournissez deux, il ajoute le second au premier et renvoie le résultat.
Syntaxe
Vous pouvez utiliser l'un ou l'autre de ces deux formulaires :
TIMESTAMP(expr) TIMESTAMP(expr1,expr2)
Le premier argument (expr
et expr1
) est une expression date ou datetime. Le deuxième argument (expr2
) est une expression temporelle. Si vous fournissez deux arguments, expr2
est ajouté à expr1
et le résultat est une valeur datetime.
Exemple 1 – Fournissez un argument "date"
Dans cet exemple, je fournis une expression de date.
SELECT TIMESTAMP('1999-12-31');
Résultat :
+-------------------------+ | TIMESTAMP('1999-12-31') | +-------------------------+ | 1999-12-31 00:00:00 | +-------------------------+
Ainsi, le résultat est une valeur datetime, que notre argument soit une expression date ou datetime.
Exemple 2 :Fournissez un argument "datetime"
Et voici un exemple utilisant une expression datetime.
SELECT TIMESTAMP('1999-12-31 23:59:59');
Résultat :
+----------------------------------+ | TIMESTAMP('1999-12-31 23:59:59') | +----------------------------------+ | 1999-12-31 23:59:59 | +----------------------------------+
Exemple 3 – Inclure les fractions de seconde
Vous pouvez également inclure une fraction de seconde jusqu'à la microseconde (6 chiffres). Lorsque vous faites cela, le résultat inclura également cette partie.
SELECT TIMESTAMP('1999-12-31 23:59:59.999999');
Résultat :
+-----------------------------------------+ | TIMESTAMP('1999-12-31 23:59:59.999999') | +-----------------------------------------+ | 1999-12-31 23:59:59.999999 | +-----------------------------------------+
Exemple 4 – Fourniture de 2 arguments
Voici un exemple utilisant deux arguments. Comme mentionné, le second est ajouté au premier.
SELECT TIMESTAMP('1999-12-31', '12:30:45');
Résultat :
+-------------------------------------+ | TIMESTAMP('1999-12-31', '12:30:45') | +-------------------------------------+ | 1999-12-31 12:30:45 | +-------------------------------------+
Exemple 5 – Valeurs de temps plus importantes
Le type de données de temps peut avoir une plage de -838:59:59 à 838:59:59 . C'est parce qu'il ne se limite pas à représenter l'heure de la journée. Il pourrait également être utilisé pour représenter le temps écoulé. Dans ce cas, nous l'utilisons pour ajouter un grand nombre d'heures à une valeur de date.
SELECT TIMESTAMP('1999-12-31', '400:30:45');
Résultat :
+--------------------------------------+ | TIMESTAMP('1999-12-31', '400:30:45') | +--------------------------------------+ | 2000-01-16 16:30:45 | +--------------------------------------+
Exemple 6 – Valeurs négatives
Vous pouvez soustraire le deuxième argument du premier, simplement en préfixant la deuxième valeur avec un signe moins.
SELECT TIMESTAMP('1999-12-31', '-400:30:45');
Résultat :
+---------------------------------------+ | TIMESTAMP('1999-12-31', '-400:30:45') | +---------------------------------------+ | 1999-12-14 07:29:15 | +---------------------------------------+
Exemple 7 - Utilisation de la date actuelle
Si vous voulez un horodatage qui utilise la date actuelle, vous pourriez être plus intéressé par des fonctions telles que NOW()
, CURDATE()
, et peut-être même SYSDATE()
(pour la différence, voir SYSDATE()
contre NOW()
).
Cependant, le TIMESTAMP()
La fonction peut toujours être votre fonction préférée dans certains cas, par exemple si vous souhaitez ajouter une valeur de temps à la date actuelle.
SELECT TIMESTAMP(CURDATE()) AS 'Today', TIMESTAMP(CURDATE(), '24:00:00') AS 'Tomorrow';
Résultat :
+---------------------+---------------------+ | Today | Tomorrow | +---------------------+---------------------+ | 2018-07-03 00:00:00 | 2018-07-04 00:00:00 | +---------------------+---------------------+
La fonction TIMESTAMPADD()
Vous pouvez utiliser le TIMESTAMPADD()
fonction pour ajouter une unité spécifiée à une valeur date ou datetime. Cette fonction accepte également les unités telles que les jours, les mois, les années, etc.
Si vous trouvez TIMESTAMP()
trop restrictif pour vos besoins, voir TIMESTAMPADD()
Exemples.