Campo DateTime!!!!!!!!!
Pessoal estou com o seguinte problema:
Meu banco tem uma tabela que tem um campo do tipo DateTime, onde vou querer armazenar uma certa data e hora, e na minha aplicação tenho 2 edits que vao conter a Data e a Hora separadamente, queria saber como vou poder juntar essa data e hora pra guardar no banco. Estou tendo problemas com isto, ja tentei várias maneiras de resolver isto, mas sempre dava erro de tipos no banco ou entao ele gravava tudo zero (0000-00-00 00:00:00) no banco.
Ficaria muito grato se alguem pudesse me ajudar.
Meu banco tem uma tabela que tem um campo do tipo DateTime, onde vou querer armazenar uma certa data e hora, e na minha aplicação tenho 2 edits que vao conter a Data e a Hora separadamente, queria saber como vou poder juntar essa data e hora pra guardar no banco. Estou tendo problemas com isto, ja tentei várias maneiras de resolver isto, mas sempre dava erro de tipos no banco ou entao ele gravava tudo zero (0000-00-00 00:00:00) no banco.
Ficaria muito grato se alguem pudesse me ajudar.
Chokito
Curtidas 0
Respostas
Chokito
22/03/2004
só mais uma coisa que esqueci de informar pessoal, é uso kylix pra essa aplicação!!
GOSTEI 0
Cleisonsilva2004
22/03/2004
você pode dizer
tabela.fieldByname(´campodatahora´).asDateTime:=now;
ele pega a data e hora do computador
ou
tabela.fieldByname(´campodatahora´).asDateTime:=time;
ele armazena apenas a hora
tabela.fieldByname(´campodatahora´).asDateTime:=date;
ele armazena apenas a data
depois vc vai no fields e coloca o displayFormat como hh:mm:ss para hora/
e dd/mm/aaaa para data
tabela.fieldByname(´campodatahora´).asDateTime:=now;
ele pega a data e hora do computador
ou
tabela.fieldByname(´campodatahora´).asDateTime:=time;
ele armazena apenas a hora
tabela.fieldByname(´campodatahora´).asDateTime:=date;
ele armazena apenas a data
depois vc vai no fields e coloca o displayFormat como hh:mm:ss para hora/
e dd/mm/aaaa para data
GOSTEI 0
Henriquem
22/03/2004
Olá,
O Campo datetime no mysql é meio complicadinho mesmo... eu tive esse problema anteriormente!!!
Mude o tipo dos meus parametros para String... ou seja, o tipo do campo da tabela continua sendo datetime, mas na código vc faz assim:
tabela.fieldByname(´campodatahora´).asString := DateToStr(now);
Beleza....
O Campo datetime no mysql é meio complicadinho mesmo... eu tive esse problema anteriormente!!!
Mude o tipo dos meus parametros para String... ou seja, o tipo do campo da tabela continua sendo datetime, mas na código vc faz assim:
tabela.fieldByname(´campodatahora´).asString := DateToStr(now);
Beleza....
GOSTEI 0
Kandrus
22/03/2004
Você pode utilizar as funções do mysql para ´pegar´ a hora atual do servidor CURTIME() e para pegar a data atual CURDATE()
Para maiores informações acesse http://www.mysql.com/doc/en/Date_and_time_functions.html
Para maiores informações acesse http://www.mysql.com/doc/en/Date_and_time_functions.html
GOSTEI 0
Bolasete
22/03/2004
Olá meu amigo,,, vou lhe responder conforme as mesmas
dificuldades que tive no D5, utilizando componentes ZEOs.
Sempre que alterar registros movimentando as datas (date ou
date time) use o seguinte código:
Tabela.Fieldbyname(´Data e hora´).AsVariant:=Variavel_Data;
Se não houver data:
Tabela.Fieldbyname(´Data e hora´).AsVariant:=NULL;
Mas preste atenção: SEMPRE que incluir/alterar registros.
Se a sua base de dados está dando ´erro ao gravar´ utilize
um gerenciador do MYSQL, pode ser o MYSQLFRONT v. 122 e
UPDATE o registro mais ou menos assim:
UPDATE CLIENTES SET DATA_HORA = NULL WHERE CODIGO_CLIENTE=1
e então volte para sua aplicaçao e movimente o registro,
incluindo uma nova data, verificando então que não vai dar
mais mensagem de erro.
Té +,,, Bolasete
dificuldades que tive no D5, utilizando componentes ZEOs.
Sempre que alterar registros movimentando as datas (date ou
date time) use o seguinte código:
Tabela.Fieldbyname(´Data e hora´).AsVariant:=Variavel_Data;
Se não houver data:
Tabela.Fieldbyname(´Data e hora´).AsVariant:=NULL;
Mas preste atenção: SEMPRE que incluir/alterar registros.
Se a sua base de dados está dando ´erro ao gravar´ utilize
um gerenciador do MYSQL, pode ser o MYSQLFRONT v. 122 e
UPDATE o registro mais ou menos assim:
UPDATE CLIENTES SET DATA_HORA = NULL WHERE CODIGO_CLIENTE=1
e então volte para sua aplicaçao e movimente o registro,
incluindo uma nova data, verificando então que não vai dar
mais mensagem de erro.
Té +,,, Bolasete
GOSTEI 0