SQL Server - SQLSERVER 2008: Campo hora 4 digitos. URGENTE!!!!;-)

 
Vista:
sin imagen de perfil

SQLSERVER 2008: Campo hora 4 digitos. URGENTE!!!!;-)

Publicado por Ana (6 intervenciones) el 22/05/2014 19:02:24
Buenas tardes,

A ver mi me podéis ayudar. Necesito obtener la hora del sistema en 4 dígitos. Por ejemplo: 09:02 = 0902

Tengo la siguiente sentencia datepart(MI, GETDATE()) , para obtener los minutos. Pero cuando los minutos son del 1 al 9 solo me muestra 1 digito y necesito los 2 dígitos. Para ello he concatenado con el '0', pero cuando es 0 no me lo muestra. Es decir: ('0' + (CAST(datepart(MI, GETDATE()) AS VARCHAR ))).

Declare @Minuto int
SET @Minuto = ('0' + (CAST(datepart(MI, GETDATE()) AS VARCHAR )))
SELECT @Minuto

Como puedo hacerlo?.

Gracias por anticipado.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 63
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

SQLSERVER 2008: Campo hora 4 digitos. URGENTE!!!!;-)

Publicado por xve (102 intervenciones) el 22/05/2014 21:05:14
Hola Ana, haber si te sirve esto:

1
SELECT DATEPART(hour, GETDATE())+DATEPART(minute, GETDATE()) as xxx

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

SQLSERVER 2008: Campo hora 4 digitos. URGENTE!!!!;-)

Publicado por Isaias (4558 intervenciones) el 22/05/2014 22:20:22
Otra opción

select convert(char(5), getdate(), 108)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido su posición en 3 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

SQLSERVER 2008: Campo hora 4 digitos. URGENTE!!!!;-)

Publicado por Salvador (29 intervenciones) el 23/05/2014 08:33:38
Hola Ana,

Modificando lo que ha puesto isaias obtenemos lo que buscas

SELECT STUFF(CONVERT(char(5), GetDate(), 108), 3, 1, '')

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

SQLSERVER 2008: Campo hora 4 digitos. URGENTE!!!!;-)

Publicado por Ana (6 intervenciones) el 23/05/2014 09:32:23
Hola Salvador,

Perfecto, con esta función si me funciona.

Muchas gracias.

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

SQLSERVER 2008: Campo hora 4 digitos. URGENTE!!!!;-)

Publicado por Ana (6 intervenciones) el 23/05/2014 08:34:02
Hola Isaías,

Antes de nada muchas gracias, por la rápida respuesta.

Con esta sentencia, la estoy igualando a una variable int.

Declare @MI int
SET @MI = (select convert(char(5), getdate(), 108))
SELECT @MI AS MINUTO

Me aparece el siguiente mensaje:
Msg 245, Level 16, State 1, Line 9
Conversion failed when converting the varchar value '08:30' to data type int.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 31
Ha disminuido su posición en 3 puestos en SQL Server (en relación al último mes)
Gráfica de SQL Server

SQLSERVER 2008: Campo hora 4 digitos. URGENTE!!!!;-)

Publicado por Salvador (29 intervenciones) el 23/05/2014 08:47:53
Hola Ana,

Es normal que te de error ya que estas convirtiendo 08:30 a numérico, mira a ver esto:

Declare @MI int
SET @MI = (select stuff(convert(char(5), getdate(), 108), 3, 1, ''))
SELECT @MI AS MINUTO

el resultado de 08:30 sera a 830

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

SQLSERVER 2008: Campo hora 4 digitos. URGENTE!!!!;-)

Publicado por Ana (6 intervenciones) el 23/05/2014 09:06:33
Hola Xve.

Muchas gracias por la rápida respuesta.

Con esta función no me concatena, sino suma. Es decir si son la 9:03 me devuelve 12. Si muestro solo los minutos me devuelve solo 1 digito, cuando son las 9:03 me devuelve 3 y necesito que devuelva 03.

Acabo de probar la función que ha pasado Salvador. Y esa si que me funciona.

(SELECT STUFF(CONVERT(char(5), GetDate(), 108), 3, 1, ''))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

SQLSERVER 2008: Campo hora 4 digitos. URGENTE!!!!;-)

Publicado por Isaias (4558 intervenciones) el 24/05/2014 01:58:28
¿simplemente esperabas 4 dígitos?

1856

Crei que buscabas algo como:

18:56

09:18

10:14

05:12
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar