Gutoo 1 Denunciar post Postado Abril 9, 2008 Olá, Estou tendo a seguinte dúvida, procurei no fórum e nada específico com o que preciso... é o seguinte: Eu estava trabalhando com o banco Access e resolvi mudar para MySQL, só que no banco Access o tipo Data/Hora recebe uma função chamada Now() ou Agora() no valor padrão, para assim que um registro for criado ele receba a data/hora automático, sem que eu tenha que tratar isso no código do site. Agora gostaria de saber como faço esse Now() ou Agora() no MySQL? Estou trabalhando com o tipo DATETIME, está correto? Me ajudem a resolver isso. Obrigado. Gutoo. Compartilhar este post Link para o post Compartilhar em outros sites
Paulo Caesar 0 Denunciar post Postado Abril 9, 2008 UPDATE `tabela` SET `campodatahora` = NOW() Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Abril 9, 2008 use o tipo de dados Timestamp neste campo e quando inserir o registro nao informe valor Fonte: http://imasters.com.br/artigo/1168?cn=1168&cc=53 Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Abril 10, 2008 date,datetime e timestamp sao todos iguais difere apenas na precisa da data Compartilhar este post Link para o post Compartilhar em outros sites
Mário Monteiro 179 Denunciar post Postado Abril 10, 2008 Mas e a inserção automatica tambem é possivel? Compartilhar este post Link para o post Compartilhar em outros sites
giesta 29 Denunciar post Postado Abril 11, 2008 sim, com now() Compartilhar este post Link para o post Compartilhar em outros sites
Wagner Bianchi 0 Denunciar post Postado Abril 12, 2008 Mas e a inserção automatica tambem é possivel?Sim Mário, Faça da seguinte forma. Ao criar uma tabela, aplique o valor DEFAULT para o tipo de dados TIMESTAMP, como mostro abaixo: mysql> CREATE TABLE t1 ( -> id int auto_increment primary key, -> nome char(40) not null unique, -> data timestamp default current_timestamp() -> ); Query OK, 0 rows affected (0.11 sec) Então, fazemos um INSERT da seguinte forma: INSERT INTO t1 SET nome ='IMASTERS'; Visualizando os dados da tabela, temos: mysql> select * from t1; +----+----------+---------------------+ | id | nome | data | +----+----------+---------------------+ | 1 | IMASTERS | 2008-04-12 13:53:27 | +----+----------+---------------------+ 1 row in set (0.00 sec) Existe uma diferença entre os tipos de dados date, datetime e timestamp sim... cada valor de uma coluna que utiliza um dos tipos de dados ocupam espaços diferentes no arquivos de dados, por exemplo, cada valor de uma coluna do tipo DATE consome 3 bytes, do tipo DATETIME consome 8 bytes e do tipo TIMESTAMP consome 4 bytes. Diferenças entre os tipos é que, DATE é somente a data, DATETIME é a data/hora e TIMESATMP é configurado de acordo com a variável de ambiente @@time_zone: mysql> select @@time_zone; +-------------+ | @@time_zone | +-------------+ | SYSTEM | +-------------+ 1 row in set (0.00 sec) Essa variável, @@time_zone aceita valores de UTC (Coodinated Universal Time) e SYSTEM, que a o valor timestamp do sistema, que não difere muito de quando você utiliza a função now() para um campo DATETIME, mas com consumo de menos bytes. Forte abraço à todos!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites