- 1 1. Introduction
- 2 2. Fonctions MySQL pour obtenir la date/heure actuelle (Tableau comparatif)
- 3 3. Détails de la fonction NOW()
- 4 4. Caractéristiques de la fonction SYSDATE()
- 5 5. CURTIME() et CURRENT_TIME()
- 5.1 5.1 Qu’est‑ce que CURTIME()?
- 5.2 5.2 Qu’est‑ce que CURRENT_TIME()?
- 5.3 5.3 CURTIME() vs CURRENT_TIME() (Comparaison)
- 5.4 5.4 Exemples pratiques de CURTIME() / CURRENT_TIME()
- 5.5 5.5 Limitations et notes pour CURTIME() / CURRENT_TIME()
- 5.6 5.6 Quand devez‑vous utiliser CURTIME() / CURRENT_TIME()?
- 5.7 5.7 Résumé de CURTIME() / CURRENT_TIME()
- 6 6. Exemples de requêtes pratiques utilisant l’heure actuelle
- 6.1 6.1 Enregistrer l’heure actuelle lors de l’insertion de données
- 6.2 6.2 Enregistrer l’heure actuelle lors de la mise à jour de données
- 6.3 6.3 Récupérer les données des N derniers jours
- 6.4 6.4 Récupérer les données créées dans une plage horaire spécifique
- 6.5 6.5 Récupérer l’heure actuelle en tenant compte des fuseaux horaires
- 6.6 6.6 Définir l’heure de création d’un enregistrement à l’horodatage actuel par défaut
- 6.7 6.7 Supprimer les données après un certain temps
- 6.8 6.8 Obtenir l’heure actuelle avec une précision milliseconde (microseconde)
- 6.9 6.9 Guide de sélection des cas d’utilisation
- 6.10 6.10 Résumé
- 7 7. FAQ (Foire aux questions)
- 7.1 7.1 Quelle est la différence entre NOW() et SYSDATE() ?
- 7.2 7.2 Les fonctions CURRENT_TIMESTAMP() et NOW() sont‑elles identiques ?
- 7.3 7.3 Comment obtenir l’heure actuelle dans un fuseau horaire spécifique ?
- 7.4 7.4 Comment enregistrer automatiquement l’heure actuelle ?
- 7.5 7.5 Comment récupérer les données des N derniers jours ?
- 7.6 7.6 Comment obtenir l’heure actuelle avec une précision milliseconde (microseconde) ?
- 7.7 7.7 Résumé
- 8 8. Résumé
1. Introduction
Obtenir l’heure actuelle dans MySQL est une partie cruciale de la gestion de bases de données.
Par exemple, vous pouvez avoir besoin de récupérer l’heure actuelle dans des situations comme les suivantes :
- Enregistrement automatique d’un horodatage de création lors de l’insertion de données (par ex., un horodatage lorsqu’un nouvel utilisateur s’inscrit)
- Journalisation des heures de connexion des utilisateurs (par ex., gestion de l’historique des connexions)
- Récupération de données sur une certaine plage horaire (par ex., extraction de l’historique des commandes des dernières 24 heures)
- Enregistrement des journaux d’exécution du système (par ex., gestion des journaux d’erreurs et des journaux d’événements)
Comme vous pouvez le constater, récupérer correctement le « temps actuel » pour la gestion des données et la journalisation est essentiel au bon fonctionnement d’une base de données.
Dans cet article, nous expliquerons comment obtenir l’heure actuelle dans MySQL en détail à l’aide de requêtes SQL réelles.
Nous couvrirons également les différences entre les fonctions les plus couramment utilisées, comment choisir la bonne, ainsi que des exemples de requêtes pratiques — utiles tant pour les débutants que pour les utilisateurs intermédiaires.
2. Fonctions MySQL pour obtenir la date/heure actuelle (Tableau comparatif)
MySQL propose plusieurs fonctions pour récupérer l’heure actuelle.
Choisir la fonction adaptée à votre cas d’utilisation est important, mais de nombreuses personnes trouvent les différences déroutantes.
Dans cette section, nous comparons les principales fonctions utilisées pour obtenir la date/heure actuelle dans MySQL et expliquons leurs caractéristiques en détail.
2.1 Tableau comparatif des fonctions temporelles MySQL
| Function | What it returns | Format | Notes |
|---|---|---|---|
| NOW() | Current date and time | YYYY-MM-DD HH:MM:SS | Most commonly used |
| SYSDATE() | Date and time at execution | YYYY-MM-DD HH:MM:SS | Unlike NOW(), it can change on each execution |
| CURTIME() | Current time | HH:MM:SS | Time only (no date) |
| CURRENT_TIME() | Current time | HH:MM:SS | Same as CURTIME() |
| CURRENT_TIMESTAMP() | Current date and time | YYYY-MM-DD HH:MM:SS | Almost the same as NOW() |
| UTC_TIMESTAMP() | Current UTC date and time | YYYY-MM-DD HH:MM:SS | Time zone is fixed to UTC |
À partir du tableau ci‑dessus, la plupart des fonctions renvoient soit la « date et heure actuelles », soit l’« heure actuelle », mais la meilleure fonction dépend de votre objectif.
2.2 Vue d’ensemble et caractéristiques de chaque fonction
Fonction NOW()
- La fonction la plus courante pour obtenir la date et l’heure actuelles
- Retourne l’heure au moment où l’instruction SQL commence
- Souvent utilisée pour les horodatages lors de l’insertion ou de la mise à jour de données
SELECT NOW();
Exemple de sortie
2025-02-14 15:30:45
Fonction SYSDATE()
- Obtient l’heure actuelle au moment de l’exécution
- Contrairement à NOW(), SYSDATE() peut renvoyer une valeur différente à chaque évaluation (elle peut changer même au sein d’une transaction)
SELECT SYSDATE();
Exemple de sortie
2025-02-14 15:30:47
Fonction CURTIME()
- Renvoie uniquement l’heure (HH:MM:SS)
- Utile lorsque la date n’est pas nécessaire
SELECT CURTIME();
Exemple de sortie
15:30:45
Fonction CURRENT_TIME()
- Fonctionne de la même manière que CURTIME()
- Nom de fonction conforme à la norme SQL
SELECT CURRENT_TIME();
Exemple de sortie
15:30:45
Fonction CURRENT_TIMESTAMP()
- Se comporte comme NOW()
- Peut être spécifiée comme valeur de colonne
DEFAULT(souvent plus appropriée queNOW()pour les valeurs par défaut)SELECT CURRENT_TIMESTAMP();
Exemple de sortie
2025-02-14 15:30:45
Définie comme valeur par défaut lors de la création d’une table :
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
Fonction UTC_TIMESTAMP()
- Obtient l’UTC (Temps Universel Coordonné) actuel
- Indépendante du fuseau horaire du serveur, ce qui permet des horodatages cohérents
SELECT UTC_TIMESTAMP();
Exemple de sortie
2025-02-14 06:30:45
2.3 Quelle fonction devez‑vous utiliser ?
| Use case | Recommended function |
|---|---|
| Get the current date and time | NOW() |
| Get a different timestamp each time within a transaction | SYSDATE() |
| Need only the current time (HH:MM:SS) | CURTIME() or CURRENT_TIME() |
| Set as a table default value | CURRENT_TIMESTAMP() |
| Get UTC time | UTC_TIMESTAMP() |
En général, pour la récupération typique de date/heure, NOW() est généralement le bon choix.
Cependant, choisir la fonction la plus adaptée à votre cas d’utilisation permet des opérations de données plus flexibles et fiables.
3. Détails de la fonction NOW()
La fonction MySQL NOW() est la fonction la plus couramment utilisée pour obtenir la date et l’heure actuelles (date + heure).
Elle est largement employée pour stocker des horodatages dans la base de données et récupérer des données sur des intervalles de temps spécifiques.
3.1 Utilisation de base de NOW()
Syntaxe de NOW()
SELECT NOW();
Exemple de sortie
2025-02-14 15:30:45
- Le format de sortie est
YYYY-MM-DD HH:MM:SS(année-mois-jour heure:minute:seconde). - L’heure est récupérée en fonction des paramètres de fuseau horaire par défaut de MySQL.
3.2 Cas d’utilisation courants de NOW()
① Enregistrer l’heure actuelle lors de l’insertion de données
Lors de l’insertion de données dans une base de données, vous pouvez utiliser NOW() pour enregistrer un horodatage de création.
INSERT INTO users (name, created_at) VALUES ('Sato', NOW());
② Enregistrer l’heure actuelle lors de la mise à jour de données
UPDATE users SET last_login = NOW() WHERE id = 1;
③ Récupérer des données d’une période donnée
SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 1 DAY;
- En spécifiant
INTERVAL 1 DAY, vous pouvez récupérer « les données des 1 jour(s) précédents ».
3.3 Type de retour et comment changer le format de sortie
Type de retour de NOW()
- Type
DATETIME(YYYY-MM-DD HH:MM:SS) - Il peut également être traité comme une chaîne
SELECT NOW(), typeof(NOW());
Comment changer le format
SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') AS formatted_time;
Exemple de sortie
2025-02-14 15:30:45
3.4 Différences entre NOW() et SYSDATE()
| Function | When it’s evaluated | Notes |
|---|---|---|
| NOW() | At query start | Returns a fixed timestamp for the statement |
| SYSDATE() | At execution time | Can return different timestamps within the same statement |
SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();
Exemple de sortie
NOW() | SLEEP(3) | NOW()
2025-02-14 15:30:45 | wait 3 seconds | 2025-02-14 15:30:45
SYSDATE() | SLEEP(3) | SYSDATE()
2025-02-14 15:30:45 | wait 3 seconds | 2025-02-14 15:30:48
🚨 Si vous travaillez avec des transactions, NOW() est recommandé pour la cohérence.
3.5 Limitations et notes pour NOW()
① Dépend du fuseau horaire
SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
② Pour les valeurs par défaut des tables, utilisez CURRENT_TIMESTAMP
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
3.6 Résumé de NOW()
NOW()est la fonction la plus courante pour obtenir la date et l’heure actuelles dans MySQL.- Elle peut être utilisée pour les insertions, les mises à jour et la récupération de données basées sur le temps.
- Utilisez
NOW()lorsque vous avez besoin d’un horodatage cohérent au sein d’une transaction. SYSDATE()renvoie une heure différente à chaque évaluation, donc utilisez-la lorsque vous avez besoin de l’heure exacte d’exécution.- Utilisez
CONVERT_TZ()pour récupérer l’heure dans un fuseau horaire différent.
📌 Conclusion : Dans la plupart des cas, NOW() est le meilleur choix pour obtenir la date et l’heure actuelles dans MySQL.

4. Caractéristiques de la fonction SYSDATE()
La fonction SYSDATE() est une autre façon d’obtenir la date et l’heure actuelles dans MySQL, mais elle se comporte différemment de NOW().
Dans cette section, nous expliquerons l’utilisation de base de SYSDATE(), ses différences avec NOW(), et les notes importantes.
4.1 Qu’est-ce que SYSDATE()?
SYSDATE() est une fonction qui renvoie l’heure au moment de l’exécution de l’instruction.
Contrairement à NOW(), elle renvoie un horodatage différent à chaque évaluation.
Syntaxe de SYSDATE()
SELECT SYSDATE();
Exemple de sortie
2025-02-14 16:00:45
- Retourné au format
YYYY-MM-DD HH:MM:SS - Représente le moment où la requête est exécutée
4.2 Différences entre SYSDATE() et NOW()
| Function | When it’s evaluated | Notes |
|---|---|---|
| NOW() | At query start | Returns a fixed timestamp for the statement |
| SYSDATE() | At execution time | Returns a different timestamp each time |
Comparaison de comportement : NOW() vs SYSDATE()
SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();
Exemple de sortie
NOW() | SLEEP(3) | NOW()
2025-02-14 16:00:45 | wait 3 seconds | 2025-02-14 16:00:45
SYSDATE() | SLEEP(3) | SYSDATE()
2025-02-14 16:00:45 | wait 3 seconds | 2025-02-14 16:00:48
📌 Points clés
NOW()conserve l’horodatage depuis le début de l’instruction, donc il ne change pas.SYSDATE()renvoie un horodatage différent à chaque évaluation, donc il change après 3 secondes.
🚨 Utilisez NOW() pour le traitement des transactions
- Parce que
SYSDATE()peut se comporter différemment deNOW()dans les environnements multi‑threads,NOW()est généralement recommandé pour la cohérence transactionnelle.
4.3 Exemples d’utilisation de SYSDATE()
① Enregistrer l’heure actuelle lors de l’insertion de données
INSERT INTO logs (event, created_at) VALUES ('User login', SYSDATE());
② Enregistrer l’heure actuelle lors de la mise à jour de données
UPDATE users SET last_login = SYSDATE() WHERE id = 1;
③ Obtenir l’heure actuelle dans un format spécifique
SELECT DATE_FORMAT(SYSDATE(), '%Y-%m-%d %H:%i:%s') AS formatted_time;
Exemple de sortie
2025-02-14 16:05:30
4.4 Limitations et notes pour SYSDATE()
① Comportement de la transaction
NOW()conserve l’horodatage depuis le début de l’instruction , donc il peut être utilisé de façon cohérente au sein d’une transaction.SYSDATE()renvoie un horodatage différent à chaque fois , ce qui peut entraîner un glissement du temps au sein d’une transaction.
② Ne peut pas être utilisé comme valeur DEFAULT
SYSDATE()ne peut pas être défini comme valeurDEFAULTd’une colonne de table .
✅ Solution : Utilisez DEFAULT CURRENT_TIMESTAMP.
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
4.5 Quand devez‑vous utiliser SYSDATE()?
| Use case | Recommended function |
|---|---|
| Typical current timestamp retrieval | NOW() |
| Use a consistent timestamp within a transaction | NOW() |
| Need the exact execution time | SYSDATE() |
🚀 SYSDATE() convient à la journalisation en temps réel, mais n’est pas idéal pour le traitement des transactions.
4.6 Résumé de SYSDATE()
- SYSDATE() récupère l’horodatage au moment de l’exécution, contrairement à
NOW(). - Parce qu’il peut renvoyer des valeurs différentes à chaque fois, il est utile pour la journalisation en temps réel.
- Pour la cohérence transactionnelle,
NOW()est recommandé. - Pour les valeurs par défaut, utilisez
CURRENT_TIMESTAMP.
📌 Conclusion : Pour la récupération générale d’horodatage, NOW() est le meilleur choix ; pour des temps d’exécution précis, choisissez SYSDATE().
5. CURTIME() et CURRENT_TIME()
Lorsque vous souhaitez obtenir l’heure actuelle dans MySQL, CURTIME() et CURRENT_TIME() sont utilisés lorsque vous avez besoin uniquement de l’heure (HH:MM:SS).
Dans cette section, nous expliquerons l’utilisation de base, les différences et des exemples pratiques pour chacun.
5.1 Qu’est‑ce que CURTIME()?
CURTIME() est une fonction qui obtient l’heure actuelle (heure, minute, seconde) dans MySQL.
Sa caractéristique principale est qu’elle n’inclut pas la date — seule la partie heure est renvoyée.
Syntaxe de CURTIME()
SELECT CURTIME();
Exemple de sortie
16:30:45
- Format :
HH:MM:SS - Dépend du paramètre de fuseau horaire du serveur
- Contrairement à
NOW(), elle convient lorsque vous n’avez pas besoin d’informations de date
5.2 Qu’est‑ce que CURRENT_TIME()?
CURRENT_TIME(), comme CURTIME(), est une fonction qui obtient l’heure actuelle (HH:MM:SS).
En pratique, elle se comporte exactement comme CURTIME().
Syntaxe de CURRENT_TIME()
SELECT CURRENT_TIME();
Exemple de sortie
16:30:45
📌 Quelle est la différence ?
CURTIME()est spécifique à MySQLCURRENT_TIME()est standard SQL- Ils se comportent de la même façon
- Choisissez en fonction de la préférence de lisibilité (pas de différence de performance)
5.3 CURTIME() vs CURRENT_TIME() (Comparaison)
| Function | What it returns | Format | Notes |
|---|---|---|---|
| CURTIME() | Current time (hour/minute/second) | HH:MM:SS | MySQL-specific function |
| CURRENT_TIME() | Current time (hour/minute/second) | HH:MM:SS | SQL-standard function |
5.4 Exemples pratiques de CURTIME() / CURRENT_TIME()
① Enregistrer l’heure actuelle lors de l’insertion de données
INSERT INTO user_logs (event, event_time) VALUES ('Login', CURTIME());
② Filtrage (récupérer des données dans une plage horaire spécifique)
SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';
③ Modifier la précision (inclure les millisecondes)
SELECT CURTIME(3); -- Display up to 3 fractional digits
Exemple de sortie
16:30:45.123
5.5 Limitations et notes pour CURTIME() / CURRENT_TIME()
① Pas d’information de date, donc combinez avec une date si nécessaire
SELECT CONCAT(CURDATE(), ' ', CURTIME()) AS full_datetime;
② Lors de l’utilisation comme valeur DEFAULT
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
event_time TIME DEFAULT CURTIME()
);
5.6 Quand devez‑vous utiliser CURTIME() / CURRENT_TIME()?
| Use case | Recommended function |
|---|---|
| Need only the current time (hour/minute/second) | CURTIME() or CURRENT_TIME() |
| Need current date and time | NOW() |
| Need millisecond precision | CURTIME(3) |
📌 Dans la plupart des cas, soit CURTIME() soit CURRENT_TIME() fonctionne correctement.
Choisissez celle que vous trouvez la plus lisible.
5.7 Résumé de CURTIME() / CURRENT_TIME()
CURTIME()est spécifique à MySQL ;CURRENT_TIME()est conforme à la norme SQL- Les deux récupèrent l’heure actuelle (HH:MM:SS)
- Utilisez
CURTIME(3)ouDATE_FORMAT()pour ajuster le format/la précision - Si vous avez besoin d’une date, combinez avec
CURDATE()ou utilisezNOW() - Pour les valeurs par défaut,
CURRENT_TIMESTAMPest couramment utilisé
📌 Conclusion : Si vous avez seulement besoin de l’heure actuelle, CURTIME() est un bon choix.
6. Exemples de requêtes pratiques utilisant l’heure actuelle
Maintenant que vous comprenez comment récupérer l’heure actuelle dans MySQL, examinons des façons pratiques de l’utiliser.
Dans cette section, nous présenterons des exemples de requêtes réelles utilisant l’heure actuelle.
Vous apprendrez des techniques utiles pour les tâches quotidiennes de base de données telles que les insertions, les mises à jour et les recherches.
6.1 Enregistrer l’heure actuelle lors de l’insertion de données
① Enregistrer l’heure actuelle lorsqu’un utilisateur s’inscrit
INSERT INTO users (name, email, created_at)
VALUES ('Sato', 'sato@example.com', NOW());
6.2 Enregistrer l’heure actuelle lors de la mise à jour de données
② Enregistrer l’horodatage du dernier login de l’utilisateur
UPDATE users SET last_login = NOW() WHERE id = 1;
6.3 Récupérer les données des N derniers jours
③ Récupérer les données de commande des 7 derniers jours
SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;
6.4 Récupérer les données créées dans une plage horaire spécifique
④ Récupérer les données créées aujourd’hui entre 9h00 et 18h00
SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00';
6.5 Récupérer l’heure actuelle en tenant compte des fuseaux horaires
⑤ Convertir l’heure UTC en heure du Japon (JST)
SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
6.6 Définir l’heure de création d’un enregistrement à l’horodatage actuel par défaut
⑥ Définir automatiquement created_at à l’horodatage actuel
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
event VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
6.7 Supprimer les données après un certain temps
⑦ Supprimer les données de plus de 30 jours
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;
6.8 Obtenir l’heure actuelle avec une précision milliseconde (microseconde)
⑧ Obtenir l’horodatage actuel avec une précision milliseconde
SELECT NOW(3);
Exemple de sortie
2025-02-14 16:30:45.123
6.9 Guide de sélection des cas d’utilisation
| Use case | Recommended function | Example |
|---|---|---|
| Record the current time when inserting data | NOW() | INSERT INTO users (name, created_at) VALUES ('Sato', NOW()); |
| Record the current time when updating data | NOW() | UPDATE users SET last_login = NOW() WHERE id = 1; |
| Retrieve data from the past N days | NOW() - INTERVAL X DAY | SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY; |
| Retrieve data within a specific time range | CURTIME() | SELECT * FROM logs WHERE TIME(created_at) BETWEEN '09:00:00' AND '18:00:00'; |
| Convert UTC time to JST | CONVERT_TZ() | SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo'); |
| Delete old data (older than 30 days) | NOW() - INTERVAL X DAY | DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY; |
6.10 Résumé
NOW()gère la récupération de base de l’horodatage actuelCURTIME()etCURRENT_TIME()sont utiles lorsque vous avez besoin uniquement de l’heure- Vous pouvez utiliser l’heure actuelle pour des requêtes à fenêtre temporelle, le filtrage par moment de la journée et des horodatages à précision milliseconde
- Comme les horodatages dépendent des fuseaux horaires, utilisez
CONVERT_TZ()pour obtenir l’heure correcte - Pour la gestion de la taille de la base de données, concevoir un mécanisme de suppression automatique des anciennes données est également important
📌 Conclusion : Utiliser l’heure actuelle efficacement vous aide à gérer les données plus efficacement dans MySQL.
7. FAQ (Foire aux questions)
Voici des questions fréquemment posées (FAQ) sur la façon d’obtenir l’heure actuelle dans MySQL.
Chaque question reçoit une réponse claire et concise.
7.1 Quelle est la différence entre NOW() et SYSDATE() ?
Réponse
NOW() et SYSDATE() récupèrent tous deux la date et l’heure actuelles, mais ils diffèrent quant au moment où la valeur est évaluée.
| Function | When it’s evaluated | Notes |
|---|---|---|
| NOW() | At query start | Returns a fixed timestamp for the statement |
| SYSDATE() | At execution time | Returns a different timestamp on each evaluation |
Exemple de test
SELECT NOW(), SLEEP(3), NOW();
SELECT SYSDATE(), SLEEP(3), SYSDATE();
Exemple de sortie
NOW() | SLEEP(3) | NOW()
2025-02-14 16:30:45 | wait 3 seconds | 2025-02-14 16:30:45
SYSDATE() | SLEEP(3) | SYSDATE()
2025-02-14 16:30:45 | wait 3 seconds | 2025-02-14 16:30:48
🚨 Pour le traitement des transactions, NOW() est généralement recommandé.
7.2 Les fonctions CURRENT_TIMESTAMP() et NOW() sont‑elles identiques ?
Réponse
Ils se comportent presque de la même façon, mais CURRENT_TIMESTAMP() peut être utilisé comme valeur DEFAULT.
Exemple lors de la création d’une table
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
7.3 Comment obtenir l’heure actuelle dans un fuseau horaire spécifique ?
Réponse
SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
7.4 Comment enregistrer automatiquement l’heure actuelle ?
Réponse
Lors de la création d’une table, spécifiez DEFAULT CURRENT_TIMESTAMP pour enregistrer automatiquement l’heure actuelle dans created_at.
CREATE TABLE logs (
id INT AUTO_INCREMENT PRIMARY KEY,
event VARCHAR(255),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
7.5 Comment récupérer les données des N derniers jours ?
Réponse
SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;
7.6 Comment obtenir l’heure actuelle avec une précision milliseconde (microseconde) ?
Réponse
SELECT NOW(3);
Exemple de sortie
2025-02-14 16:30:45.123
7.7 Résumé
NOW()etSYSDATE()diffèrent dans le moment de l’évaluationCURRENT_TIMESTAMP()peut être utilisé comme valeurDEFAULT- Utilisez
CONVERT_TZ()pour récupérer les horodatages dans d’autres fuseaux horaires - Utilisez
DEFAULT CURRENT_TIMESTAMPpour enregistrer automatiquement les horodatages de création - Utilisez
NOW() - INTERVAL X DAYpour récupérer les données des X derniers jours NOW(3)ouNOW(6)prend en charge les horodatages avec précision milliseconde/microseconde
📌 Conclusion : choisir la bonne fonction temporelle MySQL est essentiel pour travailler avec les horodatages actuels.
8. Résumé
Dans cet article, nous avons expliqué comment obtenir l’heure actuelle dans MySQL.
En nous concentrant sur la fonction NOW(), nous avons abordé les différences entre fonctions similaires, des exemples de requêtes pratiques et des notes importantes.
8.1 Principales fonctions MySQL pour obtenir l’heure actuelle
| Function | What it returns | Format | Notes |
|---|---|---|---|
| NOW() | Current date and time | YYYY-MM-DD HH:MM:SS | Most common function |
| SYSDATE() | Date and time at execution | YYYY-MM-DD HH:MM:SS | Can return different values on each evaluation |
| CURTIME() | Current time | HH:MM:SS | Time only (no date) |
| CURRENT_TIME() | Current time | HH:MM:SS | Same as CURTIME() |
| CURRENT_TIMESTAMP() | Current date and time | YYYY-MM-DD HH:MM:SS | Almost the same as NOW() |
| UTC_TIMESTAMP() | Current UTC date and time | YYYY-MM-DD HH:MM:SS | Time zone fixed to UTC |
📌 Conclusion :
- Pour la récupération générale d’un horodatage actuel,
NOW()est généralement le meilleur choix . - Si vous avez besoin de l’heure exacte d’exécution, utilisez
SYSDATE(). - Si vous avez seulement besoin de l’heure (sans la date), choisissez
CURTIME().
8.2 Requêtes pratiques utilisant l’heure actuelle
Enregistrer l’heure actuelle lors de l’insertion de données
INSERT INTO users (name, created_at) VALUES ('Sato', NOW());
Enregistrer l’heure actuelle lors de la mise à jour de données
UPDATE users SET last_login = NOW() WHERE id = 1;
Récupérer les données des 7 derniers jours
SELECT * FROM orders WHERE order_date >= NOW() - INTERVAL 7 DAY;
Récupérer l’heure en tenant compte des fuseaux horaires
SELECT CONVERT_TZ(NOW(), 'UTC', 'Asia/Tokyo');
Supprimer les anciennes données (plus de 30 jours)
DELETE FROM logs WHERE created_at < NOW() - INTERVAL 30 DAY;
8.3 Notes sur les fuseaux horaires
NOW()de MySQL dépend du paramètre de fuseau horaire par défaut, donc les résultats peuvent varier selon les environnements.- Utilisez
CONVERT_TZ()pour récupérer les horodatages dans un autre fuseau horaire. - Si vous souhaitez changer le fuseau horaire du serveur :
SET GLOBAL time_zone = 'Asia/Tokyo';
8.4 FAQ sur les fonctions temporelles actuelles de MySQL
Q1. Quelle est la différence entre NOW() et SYSDATE() ?
➡ NOW() récupère l’heure au début de la requête, tandis que SYSDATE() récupère l’heure à l’exécution.
Q2. CURRENT_TIMESTAMP() et NOW() sont‑ils identiques ?
➡ Ils sont presque identiques, mais CURRENT_TIMESTAMP() peut être utilisé comme valeur DEFAULT.
Q3. Comment obtenir l’heure actuelle avec une précision milliseconde (microseconde) ?
➡ Utilisez NOW(3) (millisecondes) ou NOW(6) (microsecondes).
SELECT NOW(3); -- Example: 2025-02-14 16:30:45.123
8.5 Résumé
- En MySQL, choisir la bonne fonction pour l’heure actuelle est important .
- Utilisez
NOW()pour les cas typiques, etSYSDATE()lorsque vous avez besoin d’horodatages d’exécution exacts . - Utilisez
CURTIME()pour l’heure uniquement, etCONVERT_TZ()pour la conversion de fuseau horaire . - Vous pouvez utiliser l’heure actuelle lors des insertions, mises à jour, recherches et suppressions .
📌 Conclusion : Maîtrisez les fonctions temporelles de MySQL pour gérer les données plus efficacement.


