174 votes

Comment obtenir la date et l'heure actuelles dans MySQL ?

Existe-t-il une valeur ou une commande telle que DATETIME que je puisse utiliser dans une requête manuelle pour insérer la date et l'heure actuelles ?

INSERT INTO servers (
  server_name, online_status, exchange, disk_space, network_shares
) VALUES(
  'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE' 'DATETIME' 
)

La valeur DATETIME citée à la fin est l'endroit où je veux ajouter la date et l'heure actuelles.

305voto

francisco.preller Points 2207

Vous pouvez utiliser NOW() :

INSERT INTO servers (server_name, online_status, exchange, disk_space, network_shares, c_time)
VALUES('m1', 'ONLINE', 'exchange', 'disk_space', 'network_shares', NOW())

34voto

Ankit Sharma Points 1996

Utilisation HORODATAGE_COURANT() o maintenant()

Comme

INSERT INTO servers (server_name, online_status, exchange, disk_space,
network_shares,date_time) VALUES('m1','ONLINE','ONLINE','100GB','ONLINE',now() )

o

INSERT INTO servers (server_name, online_status, exchange, disk_space,
network_shares,date_time) VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE'
,CURRENT_TIMESTAMP() )

Remplacez date_time par le nom de la colonne que vous souhaitez utiliser pour insérer l'heure.

30voto

Erandi Points 301

Même s'il existe de nombreuses réponses acceptées, je pense que cette voie est également possible :

Créez votre Serveurs tableau comme suit :

CREATE TABLE `servers`
(
      id int(11) NOT NULL PRIMARY KEY auto_increment,
      server_name varchar(45) NOT NULL,
      online_status varchar(45) NOT NULL,
      _exchange varchar(45) NOT NULL, 
      disk_space varchar(45) NOT NULL,
      network_shares varchar(45) NOT NULL,
      date_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
);

Et votre INSÉRER doit être :

INSERT INTO servers (server_name, online_status, _exchange, disk_space, network_shares)
VALUES('m1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE');

Mon environnement :

Ordinateur portable Windows Core i3 avec 4GB RAM, et j'ai réalisé l'exemple ci-dessus sur MySQL Workbench 6.2 (Version 6.2.5.0 Build 397 64 Bits).

7voto

Alec. Points 3482

Oui, vous pouvez utiliser le CURRENT_TIMESTAMP() commande.

Voir ici : Fonctions de date et d'heure

5voto

codeforester Points 17582

La bonne réponse est SYSDATE() .

INSERT INTO servers (
    server_name, online_status, exchange, disk_space,
    network_shares, date_time
)
VALUES (
    'm1', 'ONLINE', 'ONLINE', '100GB', 'ONLINE', SYSDATE()
);

Nous pouvons changer ce comportement et rendre NOW() se comportent de la même manière que SYSDATE() en fixant sysdate_is_now à l'argument de ligne de commande True .

Il convient de noter que NOW() (qui a CURRENT_TIMESTAMP() en tant qu'alias), diffère de SYSDATE() dans un subtile manière :

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

Comme l'indique Erandi il est préférable de créer votre tableau à l'aide de l'option DEFAULT afin que la colonne soit automatiquement remplie avec l'horodatage lorsque vous insérez une nouvelle ligne :

date_time datetime NOT NULL DEFAULT SYSDATE()

Si vous souhaitez que la date actuelle soit indiquée dans époque vous pouvez utiliser le format UNIX_TIMESTAMP() . Par exemple :

select now(3), sysdate(3), unix_timestamp();

donnerait

+-------------------------+-------------------------+------------------+
| now(3)                  | sysdate(3)              | unix_timestamp() |
+-------------------------+-------------------------+------------------+
| 2018-11-27 01:40:08.160 | 2018-11-27 01:40:08.160 |       1543282808 |
+-------------------------+-------------------------+------------------+

En rapport :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X