Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Problema con Consulta con horas

Estas en el tema de Problema con Consulta con horas en el foro de SQL Server en Foros del Web. Hola a tod@s, vereis, tengo una tabla con un campo totalhoras de tipo hh:mm y otro campo preciohora de tipo float y la consulta que ...
  #1 (permalink)  
Antiguo 25/04/2007, 11:23
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 1 mes
Puntos: 3
Problema con Consulta con horas

Hola a tod@s, vereis, tengo una tabla con un campo totalhoras de tipo hh:mm y otro campo preciohora de tipo float y la consulta que intento es la siguiente:

Select convert(nvarchar(10),(preciohora*(convert(float,to talhoras )))) From Tabla

Esta consulta me da el siguiente error :
Error al convertir el tipo de datos nvarchar a float.

Alguien sabe como tendría que hacer esta consulta.
Gracias de antemano.

Última edición por Expinete; 25/04/2007 a las 11:30
  #2 (permalink)  
Antiguo 25/04/2007, 11:28
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: Problema con Consulta con horas

de que tipo es tu campo totalhoras??
varchar???
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 25/04/2007, 11:30
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Problema con Consulta con horas

si,es de tipo varchar
  #4 (permalink)  
Antiguo 25/04/2007, 11:47
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Problema con Consulta con horas

Bueno ya lo he solucionado, es un pelín lioso pero lo pongo por si ha alguien tiene el mismo problema, ahora el problema es que el resultado es en hexadecimal, si alguien sabe solucionarlo le estaría muy agradecido.
En fin ahi va:
SELECT (convert(float,(convert(float,preciohora)*(convert (float,(substring(totalhoras,0,2))))+(convert(floa t,(substring(totalhoras,4,2))))*1/60))) as Coste From Tabla
  #5 (permalink)  
Antiguo 25/04/2007, 11:50
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: Problema con Consulta con horas

entonces debes convertir cada numero por separado, para que se pueda hacer la transformacion de texto a numerico...
p.e.
3:35 <-- no es un numero valido....
3.58 <-- este si... pero faltaria convertir el numero de minutos a una fraccion de hora equivalente...

Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #6 (permalink)  
Antiguo 25/04/2007, 11:52
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: Problema con Consulta con horas

bueno creo que me tarde en responder...
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #7 (permalink)  
Antiguo 26/04/2007, 01:18
Avatar de Expinete  
Fecha de Ingreso: abril-2006
Ubicación: Zaragoza
Mensajes: 236
Antigüedad: 18 años, 1 mes
Puntos: 3
Re: Problema con Consulta con horas

Solucionado el problema de hexadecimal, aqui os lo dejo:
SELECT
(convert(nvarchar(4),(preciohora*(convert(INT,(sub string(totalhoras,0,2)))))) + ',' + convert(nvarchar(10),(convert(float,(substring(tot alhoras,4,2)))*5/30)) ) as Coste FROM Tabla

Y gracias por la atención y el esfuerzo Andres95 ;)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:23.