Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-01-2010
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
SQLite3 devuelve 01-01-1899

Estoy intentando que una consulta me formatee las fechas NULL como 01-01-1970, para ello, dentro de una consulta, hago lo siguiente:
Código SQL [-]
       ...
       ( CASE WHEN FECHA ISNULL
              THEN STRFTIME("%d-%m-%Y", DATE("01-05-1970"))
              ELSE STRFTIME("%d-%m-%Y", FECHA)
         END
       ) AS F_NULA,
       ...
He probado a poner la fecha todas las variantes posibles y siempre obtengo el mismo resultado: 01-01-1899

¿Sabeis como se hace?
Saludos
salvica
Responder Con Cita
  #2  
Antiguo 29-01-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 29
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por salvica Ver Mensaje
Código SQL [-]
       ...
       ( CASE WHEN FECHA ISNULL
              THEN STRFTIME("%d-%m-%Y", DATE("01-05-1970"))
              ELSE STRFTIME("%d-%m-%Y", FECHA)
         END
       ) AS F_NULA,
       ...
He probado a poner la fecha todas las variantes posibles y siempre obtengo el mismo resultado: 01-01-1899
No sé si tenga que ver que en lugar de "IS NULL" estás escribiendo "ISNULL" (desconozco si SQLite lo permite de la segunda forma), pero podría ser también que el campo Fecha contenga un valor que no es nulo.

Por cierto, ¿dónde estás observando que aparece la fecha "01-01-1899"? ¿Qué programa utilizas para probar las consultas SQL antes de llevarlas a Delphi? (suponiendo que en todo esto usas Delphi ).

Cabe mencionar que la fecha "0" es el 30/12/1899, por tanto pareciera como si tu campo tuviese un valor que como número es -363.

Saludos.

Al González.
Responder Con Cita
  #3  
Antiguo 29-01-2010
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Hola Al González, gracias por contestar.

Exáctamente la fecha que devuelve es la que tú dices 30-12-1899 (se conoce que equivoqué al copiarla)

Para el desarrollo utilizo Delphi7/Zeos/SQLite3 y para "cotorrear" las salidas y probar las consultas utilizo Sqlite Code Factory.

Los campos en los que aparece esa fecha estan a NULL y me lo hace lo mismo Delphi que Code Factory.

La documentación de SQLite pone como palabra clave ISNULL (todo junto), aparte que lo utilizo con otros campos y funciona correctamente.

Saludos
salvica
Responder Con Cita
  #4  
Antiguo 03-02-2010
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Me he dado cuenta, que todos los valores erróneos provienen del resultado de hacer LEFT JOIN sobre la tabla en cuestión
Código SQL [-]
       ...
       ( CASE WHEN FECHA ISNULL
              THEN STRFTIME("%d-%m-%Y", DATE("01-05-1970"))
              ELSE STRFTIME("%d-%m-%Y", FECHA)
         END
       ) AS F_NULA,
       ...
       FROM tabla
            LEFT JOIN nulos ON (tabla.CLAVE = nulos.CLAVE)
suponiendo vacía la tabla nulos, todos los resultados de FECHA son nulos, con lo que al hacer la transformación debería dar 01-05-1970, y sin embargo me devuelve 30-12-1899

¿En qué me equivoco?
Saludos
salvica
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
acceso a datos sqlite3 lazarus anubis Lazarus, FreePascal, Kylix, etc. 2 10-12-2009 18:12:29
RecNo devuelve valor -1 jandok238 MySQL 1 27-11-2009 22:01:23
Checkbox me devuelve -1 Kenobi Varios 3 09-05-2008 17:30:00
RecordCount me devuelve -1 mayte Conexión con bases de datos 6 11-07-2007 15:40:14
DLL que devuelve un Bitmap JAV Gráficos 2 26-03-2007 14:18:29


La franja horaria es GMT +2. Ahora son las 09:44:55.


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