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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-09-2013
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Cómo concatenar fecha y hora

Hola amigos del foro. tengo una tabla con dos campos (fecha y hora). y necesito hacer una consulta que tomo la fecha y hora juntas...

yo hago esta consulta
Código SQL [-]
select n.*, n.fecha||' '||n.hora from notaenfermeria n
el campo resultante me muestra el siguiente dato 2013-09-10 10:11:00.0000, Cómo hago para que al unir estos dos campos el resultados se igual a "2013-09-10 10:11:00" o "2013-09-10 10:11"

Gracias por vuestra ayuda

GustavoCruz
Responder Con Cita
  #2  
Antiguo 16-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gustavo.

Código SQL [-]
SELECT N.*,
       N.FECHA || ' ' || SUBSTRING(N.HORA FROM 1 FOR 5) AS FECHA_HORA
FROM NOTAENFERMERIA N

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #3  
Antiguo 16-09-2013
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Hola ecfisa, gracias por tu respuesta, pero ahora me surge otro problema y es que necesito consultar por este campo; como en la selección me dio lo que necesitaba pensé que en la parte del where sería lo mismo y no es posible; estoy tratando de esta manera
Código SQL [-]
select n.*
from  liquidos n
where n.fecha||' '||n.hora between cast(:fecha1 as timestamp) and cast(:fecha2 as timestamp)
order by n.fecha, n.hora
pero no me arroja ningún resultado.

Gracias por tu ayuda


Gustavo Cruz
Responder Con Cita
  #4  
Antiguo 16-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gustavo.

Disculpa pero no entiendo que relación tiene la última consulta con el código y el problema de visualización de tu primer mensaje. Tal vez si lo explicas un poco mas...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 16-09-2013
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Hola ecfisa,

Resulta que tengo una tabla en la que coloqué dos campos (fecha y hora), luego por caprichos del cliente me tocó visualizar el dato en un solo campo "fecha_hora"... lo de la visualización ya está pero ahora el problema es que como tengo esos dos campos. si hago la consulta
Código SQL [-]
... fecha between :fecha1 and :fecha2 and hora between :hora1 and :hora2
no me muestra los datos que se quieren. Por lo que pensé que si se puede concatenar esos dos campos y visualizar, entonces, de igual manera se podía lanzar la condición de busqueda en la tabla
Código SQL [-]
... n.fecha||' '||n.hora between cast(:fecha_hora1 as timestamp) and cast(:fecha_hora2 as timestamp)
los parámetros "fecha_hora" les paso el valor de la siguiente manera: "2013-09-09 10:11:00"
no loqro ver cuál es el problema.

Gracias por tu ayuda y ciertamente mi primera pregunta fue muy escueta

Gustavo Cruz
Responder Con Cita
  #6  
Antiguo 16-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Si entendí bién lo que estas buscando, una opción es:
Código SQL [-]
CREATE TABLE TU_TABLA (
  ...
  FECHA DATE,
  HORA TIME,
  FECHA_HORA VARCHAR(16) COMPUTED BY (FECHA || ' ' || SUBSTRING(HORA FROM 1 FOR 5))
)

Si deseas agregar el campo sin recrear la tabla: (ver 2.5 o sup.)
Código SQL [-]
ALTER TABLE TU_TABLA ADD FECHA_HORA VARCHAR(16) 
  COMPUTED BY (FECHA || ' ' || SUBSTRING(HORA FROM 1 FOR 5))

Luego podrás ejecutar la consulta de este modo:
Código SQL [-]
SELECT *
FROM TU_TABLA
WHERE FECHA_HORA BETWEEN :P_FDESDE AND :P_FHASTA
Es claro que los valores que envíes como parámetros deberán tener formato 'dd/mm/yyy hh:mm'. (Es decir como el ejemplo que mencionas en el mensaje anterior "2013-09-09 10:11:00")

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 17-09-2013
Avatar de GustavoCruz
GustavoCruz GustavoCruz is offline
Miembro
 
Registrado: jul 2006
Ubicación: Sampués Sucre (Colombia)
Posts: 293
Poder: 18
GustavoCruz Va por buen camino
Hola amigo ecfisa, sólo hasta ahora pude revisar el foro; hice como me sugeriste pero no me mostró ningún dato; luego puse esta consulta y los datos sí me salieron
Código SQL [-]
select n.*
from  liquidos n
where cast(n.fecha||' '||n.hora as timestamp) between cast(:fecha1 as timestamp) and cast(:fecha2 as timestamp)
order by n.fecha, n.hora

Gracias por tu tiempo y ayuda...


Gustavo Cruz
Responder Con Cita
  #8  
Antiguo 17-09-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Gustavo.

Antes que nada me alegra que encontraras solución

Creo saber por que no te mostró resultado... cometí un simple error de conteo. Pusiste claramente: "2013-09-09 10:11:00", entonces la hora tiene 8 digitos y no 5

Tendría que haber sido:
Código SQL [-]
FECHA_HORA VARCHAR(18) COMPUTED BY (FECHA || ' ' || SUBSTRING(HORA FROM 1 FOR 8))

Entonces, la asignacion del parámetro desde Delphi, hubiera sido algo como:
Código Delphi [-]
   ...
   IBQuery1.ParamByName('P_FDESDE').AsString := DateToStr(Now) + ' ' + Copy(TimeToStr(Now), 1, 8);
   ...

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Como le resto una hora a la fecha y hora en sql server uper MS SQL Server 3 12-10-2015 20:41:49
Consulta de fecha con hora, como? El_Raso SQL 6 18-03-2010 19:01:13
Como bloquear la fecha y hora de una PC con XP? flystar Varios 2 28-08-2008 00:02:19
concatenar fecha y hora en timestamp Vlady SQL 4 21-05-2008 17:51:04
como insertar fecha y hora?? ebeltete SQL 2 02-08-2003 22:28:08


La franja horaria es GMT +2. Ahora son las 21:44:19.


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