Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   MS SQL Server (https://www.clubdelphi.com/foros/forumdisplay.php?f=23)
-   -   Fechas en criterios de consulta (https://www.clubdelphi.com/foros/showthread.php?t=63870)

subzero 06-03-2009 04:34:47

Fechas en criterios de consulta
 
Buenas....

Estoy utilizando SQL SERVER 2005, tengo una consulta en la cual traigo información de una tabla que maneja varios campos dentro de ellos algunos de tipo Datetime, como todos saben este tipo de dato inserta la información de fecha y hora en el formato largo, pues bien, sucede que necesito que esta consulta tome solamente la fecha y no incluya la hora pues deseo evaluar la información en un rango de fechas pero me esta trayendo toda la información que se encuentra en la tabla el script sql que utilizo es el siguiente:

Código SQL [-]
SELECT
TIEMPOS.TIE_FACT_FECHA,
TIEMPOS.TIE_PED_NUMERO,
USUARIOS.USU_LOGIN, COUNT(*) AS NUM
FROM TIEMPOS INNER JOIN USUARIOS ON (TIEMPOS.TIE_USU_ID_SEPARADOR = USUARIOS.USU_ID)
WHERE CONVERT(VARCHAR(10),dbo.TIEMPOS.TIE_PED_FECHA,103) BETWEEN '01/03/2009' AND '05/03/2009'
GROUP BY dbo.USUARIOS.USU_LOGIN ORDER BY NUM DESC

He estado tentado a crear un nuevo campo que almacene solo la fecha, pero creo que debe existir otra forma, agradezco sus colaboraciones.

luisgutierrezb 06-03-2009 04:55:30

mas bien necesitas cambiar el formato, prueba con esto:


Código SQL [-]
WHERE CONVERT(VARCHAR(10),dbo.TIEMPOS.TIE_PED_FECHA,112) BETWEEN '20090301' AND '20090305'
Es el formato iso de fecha yyyymmdd

subzero 06-03-2009 05:33:09

Luis, gracias por tu aporte remplaze la linea que sugeriste pero ahora no me muestra ni un solo registro.

lgarcia 06-03-2009 13:00:21

Fechas en criterio de consulta
 
Hola:

Lo que te podria recomendar es si te interesa mantener completo ese campo fecha, es crear un campo con la fecha truncada para realizar las consultas, esta puedes ser una opcion, usando una funcion como en el siguiente ejemplo:

1ro paso:
crear esta funcion

CREATE FUNCTION FechaConteo
(@id INT)
RETURNS char(10)
AS
BEGIN
DECLARE @fecha char(10)
Select @fecha = CONVERT(Char(10), fecha_conteo, 101)
FROM Bolsos
WHERE id = @id
RETURN @fecha
END

2do paso:
crear en la tabla correspondiente el campo nuevo char(10) y en la formula pasarle: dbo.FechaConteo(id)
y guardar la estructura de la tabla

3er paso:
Volver al diseno de la tabla borrar la formula y cambiar el tipo del campo a datetime


Saludos

Luis Garcia

ContraVeneno 06-03-2009 16:32:50

¿para que convertir una fecha a cadena (varchar) teníendo tantas funciones en SQL?
Código SQL [-]
where Year(Fecha) = 2009 and Month(Fecha) in (1, 2, 3)

por cierto, esto:
Código SQL [-]
where Convert(char(8),Fecha,112) between '20090301' and '20090303'
Funciona perfectamente

subzero 07-03-2009 00:41:31

Efectivamente, me funcionó gracias a todos


La franja horaria es GMT +2. Ahora son las 11:43:49.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi