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

Formato a numero en SQL

Estas en el tema de Formato a numero en SQL en el foro de SQL Server en Foros del Web. Hola raza, tengo un resultado de una operacion en SQL que es 0 (cero) pero necesoto darle formato a una cantidad especifica de digitos, digamos ...
  #1 (permalink)  
Antiguo 02/10/2008, 09:32
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 19 años, 6 meses
Puntos: 8
Pregunta Formato a numero en SQL

Hola raza, tengo un resultado de una operacion en SQL que es 0 (cero)
pero necesoto darle formato a una cantidad especifica de digitos, digamos 000 que si el resultado es 0 me ponga 000 si es 5 me ponga 005 y asi........... alguien sabra como se hace que me oriente??

todo esto lo necesito hacer en un SP sql 2000

Salduos
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #2 (permalink)  
Antiguo 02/10/2008, 09:51
 
Fecha de Ingreso: noviembre-2006
Ubicación: México
Mensajes: 866
Antigüedad: 17 años, 5 meses
Puntos: 8
Respuesta: Formato a numero en SQL

Que te parece esto:

Código:
DECLARE @var1 int
DECLARE @var2 int
DECLARE @var3 int

SET  @var1 = 0
SET  @var2 = 55
SET  @var3 = 555

SELECT 
RIGHT( '000'+ CONVERT(VARCHAR, @var1 ), 3),  
RIGHT( '000'+ CONVERT(VARCHAR, @var2 ), 3),
RIGHT( '000'+ CONVERT(VARCHAR, @var3 ), 3)
Saludos.
  #3 (permalink)  
Antiguo 02/10/2008, 10:25
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Formato a numero en SQL

mvazquez

Aunque se puede hacer, el formateo de la salida de los datos, no es un trabajo que debiera hacer el motor de base, en todo caso, le corresponde a la capa aplicativo (front), aun asi, analiza este codigo:

declare @myint int
set @myint = 234
select replicate ('0',(10 - len(@myint))) + convert(varchar, @myint)

El 10, es el ancho del valor del campo
  #4 (permalink)  
Antiguo 02/10/2008, 16:58
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 19 años, 6 meses
Puntos: 8
Respuesta: Formato a numero en SQL

Gracias a todos, logre hacerlo de una manera muy simple...

SELECT Right('0000' + '2', 4)
SELECT Left( '2' + '0000', 4)


Saludos.
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #5 (permalink)  
Antiguo 02/10/2008, 17:34
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 19 años, 6 meses
Puntos: 8
Respuesta: Formato a numero en SQL

Ahora lo que me esta sacando canas es la manera de sacar Horas, Minutos, Segundos y Milisegundos en base a una Fecha Inicial y Fecha Final:

2008-10-01 11:06:01.470
2008-10-01 11:20:34.660


Saludos
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #6 (permalink)  
Antiguo 03/10/2008, 08:26
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Formato a numero en SQL

Para eso puedes usar la función DATEPART().
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #7 (permalink)  
Antiguo 03/10/2008, 13:49
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 19 años, 6 meses
Puntos: 8
Respuesta: Formato a numero en SQL

Sip, eslo que estoy hacieno pero ya me atore para sacar los segundos y milisegundos......

Código:
SELECT 	CASE WHEN DATEDIFF(hh, '2008-10-03 14:44:53.850', '2008-10-03 14:46:01.650') >= 1 
		THEN (DATEDIFF(ms,'2008-10-03 14:44:53.850', '2008-10-03 14:46:01.650')/3600000) 
		ELSE DATEDIFF(hh,'2008-10-03 14:44:53.850', '2008-10-03 14:46:01.650') END AS Horas,	

	CASE WHEN DATEDIFF(mi,'2008-10-03 14:44:53.850', '2008-10-03 14:46:01.650') >= 60 
		THEN ((DATEDIFF(ms,'2008-10-03 14:44:53.850', '2008-10-03 14:46:01.650') - 3600000)/60000) 
		ELSE (DATEDIFF(ms,'2008-10-03 14:44:53.850', '2008-10-03 14:46:01.650')/60000) END Minutos,

	DATEDIFF(s,'2008-10-03 14:44:53.850', '2008-10-03 14:46:01.650') AS Segundos,
	DATEDIFF(ms,'2008-10-03 14:44:53.850', '2008-10-03 14:46:01.650') AS Segundos
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
  #8 (permalink)  
Antiguo 03/10/2008, 14:26
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Respuesta: Formato a numero en SQL

Seria bueno que le dieras seguimiento a tu pregunta en el post original ya que podria ser de ayuda para alguien mas...

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.
  #9 (permalink)  
Antiguo 07/10/2008, 10:46
Avatar de mvazquez  
Fecha de Ingreso: octubre-2004
Ubicación: Monterrey - México
Mensajes: 875
Antigüedad: 19 años, 6 meses
Puntos: 8
Respuesta: Formato a numero en SQL

Hola Andres, en cuanto al post original yo lo resolvi con
SELECT Right('0000' + '2', 4)
SELECT Left( '2' + '0000', 4)

y me funciona perfectamente bien y segun he checado no le pega al performance.

Saludos.
__________________
http://vazquezvega.wordpress.com/
"La paciencia nos da el privilegio de compartir el refrescante fruto de Dios con los demás."
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

SíEste tema le ha gustado a 1 personas




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