Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 22-12-2011
Avatar de BPL
BPL BPL is offline
Miembro
 
Registrado: ene 2009
Posts: 47
Poder: 0
BPL Va por buen camino
Restando Horas....

hola a todos....

tengo dos campo de tipo Date en donde guardo Fecha y otros dos de Tipo Character en donde guardo la Hora..

necesito restar (hora1 ) - (Hora2)

pero cuando estamos hablando que la hora1 = 22:00 pm (del dia 15/12/2011) y la hora2 = 02:00 am (del dia 16/12/2011) y resto me sale un disparate.
para evitar este problema debo unir (fecha1 hora1)-(fecha2 hora2).
esto me resultaba cuando estaba trabajando con otra version del Motor (Advantage 8.0) pero ahora se cambio la version
y ya no me resulta se cae... (ahora es Advanteg 8.1) programo con delphi...

las lineas de programacion es esta.,...

SELECT TIMESTAMPDIFF(SQL_TSI_Minute,convert(convert(Fecha1,SQL_CHAR)+' '+Hora1,SQL_TIMESTAMP),convert(convert(fecha2,SQL_CHAR)+' '+Hora2,SQL_TIMESTAMP))
FROM CP_MOVIMIENTO

ojala alguien pueda ayudarme....

gracias.....
Responder Con Cita
  #2  
Antiguo 22-12-2011
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.057
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda usar etiquetas para el código, ejemplo:



En relación a tu pregunta, no he entendido bien cual es el problema que tienes, aparte de resultarme raro que guardes 'horas' en formato texto.
Responder Con Cita
  #3  
Antiguo 23-12-2011
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.735
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
No conozco ese motor de base de datos, pero si dieras el mensaje de error que te da quizás alguna búsqueda en San Google te pueda ayudar.

De todos modos, veo que estás haciendo una conversión de fecha a string. Luego lo concatenas con la hora y vuelta a convertir a fecha.

Te sugiero que rompas el problema en varios trozos y pruebes dónde está el error... por eso de "divide y vencerás"...

Empiezas por:
Código SQL [-]
/* Se supone que devuelve dos fechas y dos strings */
SELECT Fecha1, Hora1, fecha2, Hora2
FROM CP_MOVIMIENTO
Ves lo que devuelve y si es correcto sigues.
Aquí puede ser que el formato de la hora no sea correcto... o que tenga nulos o que tenga letras o que ponga la hora 25:73...

Código SQL [-]
/* Se supone que devuelve dos strings */
SELECT convert(Fecha1,SQL_CHAR), convert(fecha2,SQL_CHAR)
FROM CP_MOVIMIENTO
Ves lo que devuelve y si es correcto sigues:

Código SQL [-]
/* Se supone que devuelve dos fechas con hora */
SELECT convert(convert(Fecha1,SQL_CHAR)+' '+Hora1,SQL_TIMESTAMP), convert(convert(fecha2,SQL_CHAR)+' '+Hora2,SQL_TIMESTAMP)
FROM CP_MOVIMIENTO
Ves lo que devuelve y si es correcto sigues:

Código SQL [-]
/* Se supone que devuelve la diferencia en minutos entre las dos fechas con hora */
SELECT TIMESTAMPDIFF(SQL_TSI_Minute, convert(convert(Fecha1,SQL_CHAR)+' '+Hora1,SQL_TIMESTAMP), convert(convert(fecha2,SQL_CHAR)+' '+Hora2,SQL_TIMESTAMP))
FROM CP_MOVIMIENTO
Ves lo que devuelve y si es correcto es que el problema no está en el SQL.

Última edición por duilioisola fecha: 23-12-2011 a las 18:03:00.
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
Sumar horas jlrdz OOP 4 21-09-2011 16:12:32
Sumar Horas BuenaOnda MySQL 6 10-07-2008 08:48:37
De 12 a 24 horas sancarlos MS SQL Server 3 03-07-2008 17:21:00
Restar Horas ManuelPerez Varios 2 09-03-2008 22:30:00
SQL y las horas FRANKER SQL 2 14-05-2003 10:50:40


La franja horaria es GMT +2. Ahora son las 01:32:51.


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