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 08-11-2011
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 20
rruffino Va por buen camino
Smile Extraer Hora de Campo Date en firebird

Hola gente, estoy con firebird 2.1, el dialecto es 3. He estado realizando un procedimiento almacenado pero ahora me veo en la necesidad de extraer la hora de una fecha, pero no encuentro la forma de hacerlo. Necesito sacar la hora para comparar y trabajar con ella. Les agradezco si alguien sabe como y lo comparte.
Saludos!!!
Responder Con Cita
  #2  
Antiguo 08-11-2011
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 rrufino.

Para extraer la hora podrías usar:
Código SQL [-]
SELECT EXTRACT(HOUR FROM CURRENT_TIMESTAMP) AS HORA FROM RDB$DATABASE

O si fuera sobre un campo de una tabla, sería:
Código SQL [-]
SELECT EXTRACT(HOUR FROM CAMPO_FECHA) AS HORA FROM TU_TABLA

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 08-11-2011 a las 12:50:58. Razón: agregar ejemplo sobre una tabla
Responder Con Cita
  #3  
Antiguo 08-11-2011
rruffino rruffino is offline
Miembro
 
Registrado: dic 2004
Ubicación: Berrotaran, Cordoba - Argentina
Posts: 215
Poder: 20
rruffino Va por buen camino
Red face Gracias por tu respuesta

Hola!! Gracias por tu respuesta. En realidad yo en mi procedimiento almacenado tengo un parametro input del tipo TIME. El tema es que cuando yo quiero usarlo para comparar la hora con una variable interna, tambien del tipo time, me tira error de conversion porque el parametro no tiene un valor en formato tiempo como por ejemplo 8:00:15 sino que tiene el formato fecha-hora, por ejemplo 10/11/2011 8:00:15. Por eso preguntaba si se puede extraer toda la hora (8:00:15) completa para que no tire ese error, o en su defecto como puedo hacer para comparar con la variable interna que esa si tiene el formato deseado (8:00:15). Espero haberme explicado mejor. Muchas muchas gracias!!
Responder Con Cita
  #4  
Antiguo 08-11-2011
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.

Entiendo, el parámetro es de tipo TIMESTAMP. Creo que podrías hacer un CAST sobre el valor del parámetro, como no conozco el código te pongo un ejemplo general del uso:
Código SQL [-]
  SELECT CAST(CURRENT_TIMESTAMP AS TIME) AS HORA FROM RDB$DATABASE

Un saludo.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 08-11-2011
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 rrufino.

Te pongo un ejemplo más concreto en que se compara un valor tipo TIMESTAMP y un tipo TIME:
Código SQL [-]
CREATE PROCEDURE ES_IGUAL(HORA1 TIMESTAMP, HORA2 TIME)
RETURNS(RESULT SMALLINT)
AS
DECLARE VARIABLE AUX TIME;
BEGIN
  AUX = CAST(HORA1 AS TIME);
  IF (AUX = HORA2) THEN  /* directamente: IF (CAST(HORA1 AS TIME) = HORA2) THEN */
    RESULT = 1;
  ELSE
    RESULT = 0;
END;
La variable AUX es innecesaria en este caso, pero está como para ejemplificar el uso con una variable interna.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 08-11-2011 a las 13:47:00. Razón: agregar comentario al código
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
Extraer hora de una campo date betto SQL 4 14-05-2008 00:20:28
Date() me devuelve la hora de Estados Unidos (por lo menos)... [Gunman] PHP 1 05-07-2006 16:31:16
Problema date getdate time etc, me da una hora mas dmassive PHP 5 23-01-2006 21:37:30
campo date Manuel Varios 2 29-08-2005 15:44:59
Extraer dia, mes y año de Date por separado. kia Varios 1 02-12-2003 22:37:17


La franja horaria es GMT +2. Ahora son las 11:40:20.


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