Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-10-2015
wilcg wilcg is offline
Miembro
 
Registrado: abr 2014
Posts: 107
Poder: 11
wilcg Va por buen camino
Problemas con fechas en SQLite

Hola amigos del foro, tengo un problema muy raro con las fechas en SQLite los guardo en la base de datos correctamente pero a la hora de mostrarlo en un dbgrid me cambia la fecha por esta 30/12/1899, he revisado como esta almacenado en el campo y resulta que esta bien, solo que al mostrarlo me cambia de fecha ¿que esta pasando, alguien puede darme una explicación?. es algo raro ¿como lo soluciono?.
Código SQL [-]
CREATE TABLE "clientes" (  
  "codigo" INTEGER PRIMARY KEY  NOT NULL ,   
  "cliente" VARCHAR DEFAULT 80,   
  "fecha_registro" DATETIME DEFAULT CURRENT_DATE,   
  "fecha_edicion" DATETIME DEFAULT CURRENT_DATE,  )

Última edición por Casimiro Notevi fecha: 02-10-2015 a las 10:06:54.
Responder Con Cita
  #2  
Antiguo 02-10-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
¿Cómo lo guardas? ¿cómo lo lees?
Responder Con Cita
  #3  
Antiguo 02-10-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.272
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Normalmente ese valor de fecha que muestras corresponde a la fecha nula.
Eso te puede indicar que la fecha almacenada es nula o incorrecta.

Prueba si hay diferencia, si almacenas fechas como estas: "01/13/2015" o "13/01/2015" (pensando en diferentes formatos de almacenarla).

Intenta dar algún datos más.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 02-10-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
En teoría sqlite no soporta fechas. FireDAC por ejemplo hace un mapeo automáticamente de fecha a string

Pero de forma nativa no
Responder Con Cita
  #5  
Antiguo 02-10-2015
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Eso es porque almacenas fecha con un locale/formato que depende del pais. La forma correcta es guardar en formato ISO:

https://www.sqlite.org/lang_datefunc.html
__________________
El malabarista.
Responder Con Cita
  #6  
Antiguo 02-10-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.039
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Yo uso el formato datetime de "toda la vida", ejemplo: 2456572.84952685
Responder Con Cita
  #7  
Antiguo 02-10-2015
wilcg wilcg is offline
Miembro
 
Registrado: abr 2014
Posts: 107
Poder: 11
wilcg Va por buen camino
Gracias amigos por sus respuestas, boy a investigar lo que menciona mamcx.
Responder Con Cita
  #8  
Antiguo 02-10-2015
wilcg wilcg is offline
Miembro
 
Registrado: abr 2014
Posts: 107
Poder: 11
wilcg Va por buen camino
A ver entonces la forma correcta de guardar una fecha y hora en SQLite sería asi:
Código Delphi [-]
  with Query1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('Insert Into clientes (codigo,cliente,fecha_registro,hora_registro)');
    SQL.Add(' Values (:codigo,:cliente,:fecha_registro,:hora_registro)');
    Parambyname('codigo').Value := txtCodigo.Text;
    Parambyname('cliente').AsString := txtCliente.Text;
    Parambyname('fecha_registro').Value := FormatDateTime('YYYY-MM-DD', Date);
    Parambyname('hora_registro').Value := FormatDateTime('HH:MM:SS', Time);
    ExecSQL;
  end;
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
SQLite is Locked? Problema con SQLite. pokexperto1 Conexión con bases de datos 6 05-06-2016 22:24:08
Problemas Zeos + XE2 + sqlite WHILENOTEOF Conexión con bases de datos 1 12-05-2013 19:59:27
Formato de fechas para DateTimePicker incompatible con SQLite martini002 SQL 7 05-09-2012 07:36:58
problemas con fechas alfil123 Varios 6 04-12-2006 18:31:45
Problemas con las fechas NuncaMas Varios 2 15-02-2005 17:33:03


La franja horaria es GMT +2. Ahora son las 01:04:59.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi