conseguir solo la fecha de un datetime

10/05/2006 - 11:46 por e-lores | Informe spam
en un triguer necesito tomar solo la fecha de un valor datetime

WHERE Fecha_MHH = CONVERT(SMALLDATETIME, @fecha, 103)

He probado esto pero no funciona.

¿Como puedo convertir un DateTime en un Date?

Gracias.

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
10/05/2006 - 11:51 | Informe spam
No existe un tipo de datos sólo Fecha en SQL Server, siempre vas a tener
fecha/hora (aunque ésta última te lo devuelva todo a ceros).

Lo que tienes que hacer es convertir ese valor a caracteres
alfanuméricos (VARCHAR) en vez de SMALLDATETIME


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"e-lores" escribió en el mensaje
news:
en un triguer necesito tomar solo la fecha de un valor datetime

WHERE Fecha_MHH = CONVERT(SMALLDATETIME, @fecha, 103)

He probado esto pero no funciona.

¿Como puedo convertir un DateTime en un Date?

Gracias.


Respuesta Responder a este mensaje
#2 Rubén Vigón
10/05/2006 - 12:13 | Informe spam
Hola "e-lores",

Como sabrás, los tipos de datos «datetime» y «smalldatetime» almacenan internamente las fechas como números de coma flotante, donde la parte entera representa los días transcurridos desde una fecha base (el 1 de Enero de 1900 en SQL Server) y la parte decimal representa los segundos/milisegundos transcurridos desde la medianoche del día almacenado en la parte entera. Puedes aprovechar las características de este formato de almacenamiento para quedarte sólo con la parte de fecha, extrayendo la parte entera (despreciando la decimal) y conviertiéndola de nuevo a fecha; por ejemplo

DECLARE @fch smalldatetime
SET @fch = GetDate()
SELECT @fch AS [Fecha y hora], CAST(CAST(@fch AS int) AS smalldatetime) AS [Sólo fecha]

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#3 e-lores
10/05/2006 - 12:26 | Informe spam
Gracias a los dos.

Al final me ha funcionado con
CONVERT(smalldatetime, CONVERT( varchar, @fechaCompleta, 103) )

Sin embargo esta segunda opción también me parece muy interesante.

Gracias.
Ernesto Lores


"Rubén Vigón" ha escrit en el missatge dels grups
de discussió:%
Hola "e-lores",

Como sabrás, los tipos de datos «datetime» y «smalldatetime» almacenan
internamente las fechas como números de coma flotante, donde la parte entera
representa los días transcurridos desde una fecha base (el 1 de Enero de
1900 en SQL Server) y la parte decimal representa los segundos/milisegundos
transcurridos desde la medianoche del día almacenado en la parte entera.
Puedes aprovechar las características de este formato de almacenamiento para
quedarte sólo con la parte de fecha, extrayendo la parte entera
(despreciando la decimal) y conviertiéndola de nuevo a fecha; por ejemplo

DECLARE @fch smalldatetime
SET @fch = GetDate()
SELECT @fch AS [Fecha y hora], CAST(CAST(@fch AS int) AS smalldatetime)
AS [Sólo fecha]

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#4 Maxi
10/05/2006 - 14:04 | Informe spam
Hola Carlos, esto era asi hasta la version 2000, en la 2005 podes armar tu
propio tipo de datos y este podria ser fecha y otro podria ser hora, no solo
eso, sino que podes armar tu funcion que sume horas o saque promedio de
horas. Pero igual tienes la razon, de forma natural por el momento no hay un
tipo de datos fecha solo, espero que pronto lo podamos tener ;)


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"Carlos Sacristán" <csacristanARROBAmvpsPUNTOorg> escribió en el mensaje
news:
No existe un tipo de datos sólo Fecha en SQL Server, siempre vas a
tener
fecha/hora (aunque ésta última te lo devuelva todo a ceros).

Lo que tienes que hacer es convertir ese valor a caracteres
alfanuméricos (VARCHAR) en vez de SMALLDATETIME


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"e-lores" escribió en el mensaje
news:
en un triguer necesito tomar solo la fecha de un valor datetime

WHERE Fecha_MHH = CONVERT(SMALLDATETIME, @fecha, 103)

He probado esto pero no funciona.

¿Como puedo convertir un DateTime en un Date?

Gracias.






Respuesta Responder a este mensaje
#5 BitOne®
12/05/2006 - 17:14 | Informe spam
select convert(char(10),fecha,105)

Busca en los libros en linea la funcion convert y sus parametros.

saludos,

BitOne®

"e-lores" wrote in message
news:
en un triguer necesito tomar solo la fecha de un valor datetime

WHERE Fecha_MHH = CONVERT(SMALLDATETIME, @fecha, 103)

He probado esto pero no funciona.

¿Como puedo convertir un DateTime en un Date?

Gracias.


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida