web-dev-qa-db-fra.com

Différence entre NOW (), SYSDATE () et CURRENT_DATE () dans MySQL

Quelle différence entre NOW(), SYSDATE(), CURRENT_DATE() dans MySQL et où il peut être utilisé dans un scénario réel.

J'ai essayé NOW(), SYSDATE(), Current_Date() lorsque j'insère des données dans une table et une colonne, le type de données est TIMESTAMP tous ont la même date et la même heure.

24
Ashutosh SIngh

Current_date () ne vous donnera que la date.
now () vous donne l'heure de début de l'instruction, de la procédure, etc.
sysdate () vous donne le datetime actuel.
Regardez les secondes après avoir attendu 5 secondes entre maintenant () 1 sysdate () 1 avec la requête suivante (faites défiler vers la droite):

 sélectionnez maintenant (), sysdate (), current_date (), sleep (5), now (), sysdate (); 
 
 - donnera 
 - now () sysdate () current_date () sleep (5) now () 1 sysdate () 1 
 - 6/10/2014 2:50:04 AM 6/10/2014 2:50: 04 AM 6/10/2014 12:00:00 AM 0 6/10/2014 2:50:04 AM 6/10/2014 2:50:09 UN M
43
Benoit

NOW() renvoie un temps constant qui indique l'heure à laquelle l'instruction a commencé à s'exécuter. (Dans une fonction ou un déclencheur stocké, NOW() Renvoie l'heure à laquelle la fonction ou l'instruction de déclenchement a commencé à s'exécuter.) Cela diffère du comportement de SYSDATE(), qui renvoie l'heure exacte à qu'il exécute.

mysql> SELECT NOW(), SLEEP(2), NOW();
+---------------------+----------+---------------------+
| NOW()               | SLEEP(2) | NOW()               |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:36 |        0 | 2006-04-12 13:47:36 |
+---------------------+----------+---------------------+

mysql> SELECT SYSDATE(), SLEEP(2), SYSDATE();
+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(2) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2006-04-12 13:47:44 |        0 | 2006-04-12 13:47:46 |
+---------------------+----------+---------------------+
7
Avijit batabyal

Current_date renvoie l'horodatage du client tandis que sysdate renvoie l'horodatage du serveur. Si le serveur et le client sont sur la même machine, le résultat des deux commandes est le même. Mais dans le cas où votre serveur est par exemple aux États-Unis et que vos clients sont en Chine, ces deux fonctions renvoient des résultats complètement différents.

Je ne sais pas pour le moment (), désolé :-)

3
Dax

CURRENT_DATE() est un synonyme de nombreuses autres fonctions similaires qui ne fournissent que la date . Il y a une différence subtile entre NOW() et SYSDATE() que vous pouvez lire plus à ce sujet
site officiel MySQL page.

1
Islay