yyyy Como obter data e hora atuais no MySQL?




set mysql datetime (8)

Existe um valor ou comando como DATETIME que eu possa usar em uma consulta manual para inserir a data e a hora atuais?

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

O valor DATETIME citado no final é onde eu quero adicionar a data e a hora atuais.


Você pode usar NOW() :

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

Apesar de haver muitas respostas aceitas, acho que esse caminho também é possível:

Crie sua tabela de 'servidores' da seguinte forma :

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
);

E sua instrução INSERT deve ser :

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

Meu ambiente:

Core i3 Windows Laptop com 4GB de RAM, e eu fiz o exemplo acima no MySQL Workbench 6.2 (Versão 6.2.5.0 Build 397 64 Bits)


Se você alterar o valor padrão para CURRENT_TIMESTAMP , será mais eficiente

ALTER TABLE servers MODIFY COLUMN network_shares datetime NOT NULL DEFAULT CURRENT_TIMESTAMP;

No design do banco de dados, eu recomendo usar o Unixtime para consistência e indexação / busca / comparação de desempenho.

UNIX_TIMESTAMP() 

Pode-se sempre converter em formatos legíveis para humanos , internacionalizando-se como é individualmente mais conveniente.

FROM_ UNIXTIME (unix_timestamp, [format ])


Use CURRENT_TIMESTAMP () ou agora ()

Gostar

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

ou

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

Substitua date_time pelo nome da coluna que você deseja usar para inserir a hora.


$rs = $db->Insert('register',"'$fn','$ln','$email','$pass','$city','$mo','$fil'","'f_name','l_name=','email','password','city','contact','image'");

A resposta correta é SYSDATE() .

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

Podemos mudar esse comportamento e fazer o MySQL fazer NOW() se comportar da mesma maneira que SYSDATE() definindo o argumento da linha de comando sysdate_is_now como True .

Observe que NOW() (que tem CURRENT_TIMESTAMP() como um alias), difere de SYSDATE() de uma maneira sutil :

SYSDATE () retorna a hora em que é executado. Isso difere do comportamento de NOW (), que retorna um tempo constante que indica a hora em que a instrução começou a ser executada. (Dentro de uma função armazenada ou gatilho, NOW () retorna a hora em que a função ou instrução desencadeadora começou a ser executada.)

Conforme indicado por Erandi , é melhor criar sua tabela com a cláusula DEFAULT para que a coluna seja preenchida automaticamente com o registro de data e hora ao inserir uma nova linha:

date_time datetime NOT NULL DEFAULT SYSDATE()

Se você quiser a data atual no formato de epoch , então você pode usar UNIX_TIMESTAMP() . Por exemplo:

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

renderia

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

Relacionado:

  • Diferença entre NOW (), SYSDATE () & CURRENT_DATE () no MySQL




datetime