• Categorias
  • Recente
  • Tags
  • Popular
Collapse

Erro de leitura de data - MySQL

Agendado Fixado Trancado Movido Maker
6 Posts 3 Posters 549 Visualizações
    • Mais Antigo para Mais Recente
    • Mais Recente para Mais Antigo
    • Mais Votados
Responder
  • Responder como tópico
Entre para responder
Este tópico foi deletado. Apenas usuários com privilégios de moderação de tópico podem vê-lo.
  • J Offline
    J Offline
    joaoquaresma
    wrote on última edição por
    #1

    Boa tarde, dia e noite.
    Estou trabalhando em um projeto cujo banco de dados é MySQL 5.6. Contudo, toda vez que eu busco na tabela alguma data, o valor apresentado no componente fica um dia atrasado. Ex.:
    DATA_BANCO: 2023-03-27
    DATA_COMPONENTE: 26/03/2023

    Alguém pode me dizer se há algum recurso além dos fluxos?

    DiegoJCD 1 Resposta Última resposta
    0
  • DiegoJCD Offline
    DiegoJCD Offline
    DiegoJC
    replied to joaoquaresma on última edição por DiegoJC
    #2

    @joaoquaresma Amigo, tenta alterar o campo para DATA e HORA pra você avaliar o comportamento se ele volta 1 dia mesmo ou algumas horas? Acho que o seu problema seja com o timezone. Nao me lembro ao certo, mas ja vi pessoas com esse problema no MYSQL.

    Dá uma olhada nesses topicos aqui veja se ajuda:
    https://forum.softwell.com.br/topic/30644/horário-de-verão-no-mysql?_=1681241034614

    https://forum.softwell.com.br/topic/31280/timezone/2

    1 Resposta Última resposta
    0
  • J Offline
    J Offline
    joaoquaresma
    wrote on última edição por
    #3

    Bom dia.
    Vou descrever um exemplo: Estou realizando a montagem de um componente grade que é alimentado por um formulário associado com a tabela "vendas". Na tabela "vendas" eu possuo as colunas "cliente", "valor" e "data_compra". Essa tabela é alimentada por outra aplicação em C. Quando a tabela recebe uma nova informação, "312", "120.00" e "2023-04-14" a grade atualiza e mostra esses valores da seguinte forma: Cliente: 312, Valor: R$120,00 e Data da Compra: 13/04/2023.
    Essa data, independente de qual seja sempre está sendo apresentado, tanto na grade, quanto no componente que armazena ele no formulário que alimenta a grade, com um dia a menos.
    Estou utilizando o MySQL server 5.6, contudo o 5.7 também está com o mesmo erro. O mesmo não ocorre em PostgreSQL.

    DiegoJCD 1 Resposta Última resposta
    0
  • DiegoJCD Offline
    DiegoJCD Offline
    DiegoJC
    replied to joaoquaresma on última edição por
    #4

    @joaoquaresma Ainda acredito que possa ser problema com o timezone. Faz um teste, cria um formulario novo e uma tabela com campo data e hora.

    E observa como vão ficar os resultados no banco depois de manipular pelo formulário. Eu acredito que se você colocar via fomulario uma data 26/03/2023 00:00:00. Vai aparecer depois de alterar: 25/03/2023 23:00:00 por exemplo. Se esse for o comportamento é problema no timezone.

    Um abraço.

    S 1 Resposta Última resposta
    1
  • S Offline
    S Offline
    Sergio Alves
    replied to DiegoJC on última edição por
    #5

    Boa tarde, tive este problema também.
    Se você verificar, cada vez que você edita um registro e grava, os campos data do registro voltam 01 dia.
    Minha TimeZone já estava configurada.
    Só consegui resolver alterando os campos data para datetime
    Nas consultas, para não filtrar por datetime utilizei Date(campo), com isto filtra somente a data, ignorando a hora.
    Atualizei para o maker5, no Maker5 este erro não ocorre nos bancos MySQL.
    O Maker5 está homologado para MySQL 8.0, achei o banco bem mais rápido.

    1 Resposta Última resposta
    1
  • J Offline
    J Offline
    joaoquaresma
    wrote on última edição por
    #6

    Resolvido!

    Quando vou declarar uma SQL para o preenchimento da minha grade, os campos onde são datas, soma-se mais 0.

    Exemplo: Tabela: cadastro_de_ funcionario; Campo: aniversário; Valor: 1999-10-26.

    Como era:
    SELECT aniversario
    FROM cadastro_de_funcionario
    Retorno: 25/10/1999

    Como está:
    SELECT Date_Format(aniversario + Interval 0 Day, '%d/%m/%Y') As data_aniversario
    FROM cadastro_de_funcionario
    Retorno: 26/10/1999

    1 Resposta Última resposta
    0

  • Login

  • Não tem uma conta? Cadastrar

  • Login or register to search.
  • Primeiro post
    Último post
0
  • Categorias
  • Recente
  • Tags
  • Popular
  • Login

  • Não tem uma conta? Cadastrar

  • Login or register to search.