Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-09-2007
Borjaserrano Borjaserrano is offline
Registrado
 
Registrado: sep 2007
Posts: 8
Poder: 0
Borjaserrano Va por buen camino
Realizar una consulta sobre los registros que devuelve otra consulta

Hola amigos

He heredado una base de datos con un campo Fecha_alta de tipo VARCHAR(100), si!.. increíble!

Lo primero que he hecho ha sido convertir esos campos a Date, usando un CAST. A su vez he tenido que ir concatenando partes de esos campos dado que tenían formato 'dd.mm.aaaa', y tenía que convertir esto a 'dd/mm/aaaa'

La sentencia que he empleado para esto, es la siguiente:

Código SQL [-]
SELECT * FROM MyTable WHERE MyDATE_VARCHAR != 'No Date' AND MyDATE_VARCHAR != ''
and CAST((SUBSTRING ( MyDATE_VARCHAR FROM 7 FOR 4 )||'/'||SUBSTRING ( MyDATE_VARCHAR FROM 4 FOR 2 )||'/'||SUBSTRING ( MyDATE_VARCHAR FROM 1 FOR 2 )) AS DATE) > '01/01/2001'
and CAST((SUBSTRING ( MyDATE_VARCHAR FROM 7 FOR 4 )||'/'||SUBSTRING ( MyDATE_VARCHAR FROM 4 FOR 2 )||'/'||SUBSTRING ( MyDATE_VARCHAR FROM 1 FOR 2 )) AS DATE) > '01/01/2008'


¿Cual es el problema que tengo?

Tal y como podéis ver en la sentencia SQL primero evalúo que el campo no tenga el valor 'Sin Fecha'.. Si!!, este campo no solo puede contener fechas en formato 'dd.mm.aaaa', sino también la cadena, 'Sin fecha' !.

Por culpa de estos registros con el valor 'Sin fecha', la sentencia de antes me da errores al hacer el CAST de una cadena con ese valor (no se puede convertir a DATE).

Por tanto, lo que me gustaría hacer sería una consulta que devolviera todos los registros que no tengan este dichoso valor, y una vez obtenidos, realizar otra consulta distinta sobre ellos haciendo bien el CAST.

¿Alguna idea de cómo hacer esto?

Gracias de antemano.
Responder Con Cita
 



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
Consulta con TIMESTAMP no devuelve nada subzero Firebird e Interbase 10 12-09-2007 04:51:06
Consulta dentro de otra consulta judit25 Conexión con bases de datos 1 25-06-2007 15:52:15
Saber si una consulta no devuelve datos rafita SQL 4 18-09-2006 10:00:26
Limitar los registros que devuelve una consulta roman Conexión con bases de datos 1 03-09-2004 09:08:45
Realizar una consulta a otra máquina lore Conexión con bases de datos 2 02-10-2003 16:29:23


La franja horaria es GMT +2. Ahora son las 10:34:06.


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