Fecha sin hora en SQL

10/09/2007 - 17:46 por Yan Cantuarias | Informe spam
Hola amigos... como siempre recuriendo a Uds.

En SQL tengo un campo fecha que contiene un dato como "2005-12-03
12:01:48.827" y quiero que me muestre algo como "2005-12-03".
Como puedo hacer? necesito agrupar por el campo fecha y nome agrupa por la
hora


Gracias por su tiempo y por la ayuda brindada
Yan

Preguntas similare

Leer las respuestas

#1 Rubén Vigón
10/09/2007 - 18:00 | Informe spam
Hola Yan,

Échale un vistazo a esta respuesta anterior del foro de SQL Server:
http://groups.google.es/group/micro...3e97a62f64

Un saludo!

Rubén Vigón
Microsoft MVP Visual Basic
http://vigon.mvps.org
Respuesta Responder a este mensaje
#2 Leonardo Azpurua
10/09/2007 - 18:01 | Informe spam
"Yan Cantuarias" escribió en el mensaje
news:
Hola amigos... como siempre recuriendo a Uds.

En SQL tengo un campo fecha que contiene un dato como "2005-12-03
12:01:48.827" y quiero que me muestre algo como "2005-12-03".
Como puedo hacer? necesito agrupar por el campo fecha y nome agrupa por la
hora



Hola,

Al final, tuve que definrme esta funcion:

CREATE FUNCTION FechaEntera (@arg As DateTime)
RETURNS datetime
AS
BEGIN
RETURN CONVERT(datetime, FLOOR(CONVERT(int, @arg)))
END

y luego usar cosas del tipo:

WHERE dbo.FechaEntera(colFecha) BETWEEN

o

GROUP BY dbo.FechaEntera(colFecha)

la expresion «CONVERT(datetime, FLOOR(CONVERT(int, @arg)))», reemplazando
@arg por el nombre de una columna de tipo DATETIME (o SMALLDATETIME) te
devuelve la fecha sin hora.


Salud!
Respuesta Responder a este mensaje
#3 juan
10/09/2007 - 18:02 | Informe spam
Más que en SQL deberías indicar en que gestor de bases de datos ya que hay
diferencias. En Access puedes usar

SELECT DateValue(alumnos.fechaAlta) FROM alumnos;

"Yan Cantuarias" escribió en el mensaje
news:
Hola amigos... como siempre recuriendo a Uds.

En SQL tengo un campo fecha que contiene un dato como "2005-12-03
12:01:48.827" y quiero que me muestre algo como "2005-12-03".
Como puedo hacer? necesito agrupar por el campo fecha y nome agrupa por la
hora


Gracias por su tiempo y por la ayuda brindada
Yan

Respuesta Responder a este mensaje
#4 Alejandro Mesa
10/09/2007 - 18:02 | Informe spam
Yan Cantuarias,

Chequea la funcion CONVERT en los BOL.

select convert(char(20), fecha, 126) as fecha_no_time, count(*) as cnt
from tu_tabla
group by convert(char(20), fecha, 126)


AMB

"Yan Cantuarias" wrote:

Hola amigos... como siempre recuriendo a Uds.

En SQL tengo un campo fecha que contiene un dato como "2005-12-03
12:01:48.827" y quiero que me muestre algo como "2005-12-03".
Como puedo hacer? necesito agrupar por el campo fecha y nome agrupa por la
hora


Gracias por su tiempo y por la ayuda brindada
Yan



Respuesta Responder a este mensaje
#5 Alejandro Mesa
10/09/2007 - 18:50 | Informe spam
Hola Leonardo,

a pesar de poderse hacer, eso no es recomendable, puesto que al manipular
una columna en la expresion usada en la clusula "where" o "having" o en el
"join", SQL Server no intentara usar las estadisticas de distribucion de
algun indice que use esas columnas, en caso de este existir.

Puedes compara el plan de ejecucion de estas dos sentencias, y te daras
cuenta a lo que me refiero.

use northwind
go

select *
from dbo.orders
where dbo.FechaEntera(orderdate) = '19980715'

select *
from dbo.orders
where orderdate = '19980715'

select *
from dbo.orders
where orderdate >= '19980715' and orderdate < '19980716'
go


AMB


"Leonardo Azpurua" wrote:


"Yan Cantuarias" escribió en el mensaje
news:
> Hola amigos... como siempre recuriendo a Uds.
>
> En SQL tengo un campo fecha que contiene un dato como "2005-12-03
> 12:01:48.827" y quiero que me muestre algo como "2005-12-03".
> Como puedo hacer? necesito agrupar por el campo fecha y nome agrupa por la
> hora

Hola,

Al final, tuve que definrme esta funcion:

CREATE FUNCTION FechaEntera (@arg As DateTime)
RETURNS datetime
AS
BEGIN
RETURN CONVERT(datetime, FLOOR(CONVERT(int, @arg)))
END

y luego usar cosas del tipo:

WHERE dbo.FechaEntera(colFecha) BETWEEN

o

GROUP BY dbo.FechaEntera(colFecha)

la expresion «CONVERT(datetime, FLOOR(CONVERT(int, @arg)))», reemplazando
@arg por el nombre de una columna de tipo DATETIME (o SMALLDATETIME) te
devuelve la fecha sin hora.


Salud!



Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida