Consulta con fecha

Necesito hacer una consulta sobre una tabla con un campo formato fecha (d, m, aaaa), con fechas de varios años en los que la mimsa me devuelva todos los registros que contengan un día coincidente con la fecha de hoy, solo el día (ejemplo todos los días 19 no importa que mes o que año).
Yo pongo en el criterio del campo fecha lo siguiente:
Día(Fecha())
Pero no funciona, alguna idea.
Respuesta
1
La siguiente consulta usa la tabla Pedidos de neptuno.mdb, en una consulta nueva pasa a vista SQL y pega esto:
1.
SELECT DatePart("d",[FechaPedido]) AS Fecha
FROM Pedidos
WHERE (((DatePart("d",[FechaPedido]))=6));
Visto en la cuadricula qbe, tendríamos la tabla Pedidos y el campo FechaPedido con esto: Fecha: ParcFecha("d";[FechaPedido]) y en Criterios "6" para que filtre por ese día.
Devuelve los registros para el día 6.
2.
También puedes usar esto otro:
SELECT Left([FechaPedido],2) AS Expr1
FROM Pedidos;
Devuelve solo dos caracteres a la izquierda de la cadena (en este caso el campo FechaPedido)

7 respuestas más de otros expertos

Respuesta
1
Tu consulta resulta muy molesta para Access, porque las fechas internamente se guardan como números reales, donde la parte entera corresponde a la fecha, y la decimal, a la hora.
Le estas pidiendo que te muestre los registros con fecha 32031, 32061, 32092,...
Lo que le estas diciendo con el criterio "Día(Fecha())" es que te muestre los registros con fecha 6 (suponiendo que lo ejecutes hoy), que es el 6/1/1800 (creo, no recuerdo exactamente desde donde empieza Access a contar la fecha), mientras que lo que quieres decirle es que te muestre los registros con día 6 en su fecha.
La solución a eso:
SELECT Tabla.*
FROM Tabla
where day(fecha) = Day(date())
No se si podrá hacerse esto desde el asistente, mejor teclealo en SQL directamente.
Respuesta
1
Estas cerca pero el error está en que debes realizar un campo calculado con el campo donde tienes las fechas por ejemplo:
Nombre del campo donde están las fechas: "FecVen" entonces debes crear un campo calculado como este "DíaCalculado: Día([FecVen])" y aplicar el criterio de los días sobre este campo, por ejemplo en criterio colocas "6" y de esa manera te filtrará todos los días 6 que haya en la tabla.
Respuesta
1
Los formatos fechas suelen dar problemas. Intenta crearte un campo en la consulta en el que conviertas a numérico el día con VAL(Día(Fecha())). Si esto no te funciona dímelo y lo podemos solucionar programando una función.
P.D.: Me voy de vacaciones, vuelvo el día 19
Respuesta
1
Sobre access 2000 y Xp la función fecha() no esta funcionando ha sido cambiada por la función fecha$() intentalo y cuéntame si funciona
Inetenta Día (fecha$())
Respuesta
1
Ejemplos de expresiones que calculan o manipulan fechas y a continuación usan el resultado como criterio
Campo Expresión Descripción
FechaRequerida Entre Fecha( ) Y AgregFecha("m", 3, Fecha( )) Utiliza el operador Entre... Y (Between. And) y las funciones AgregFecha (DateAdd) y Fecha (Date) para mostrar pedidos cuya fecha requerida está entre el día de hoy y dentro de tres meses.
FechaPedido < Fecha( )- 30 Utiliza la función Fecha (Date) para mostrar los pedidos con una antigüedad de más de 30 días.
FechaPedido Año([FechaPedido])=1996 Utiliza la función Año (Year) para mostrar los pedidos con fechas de entrega en 1996.
FechaPedido ParcFecha("q", [FechaPedido])=4 Utiliza la función ParcFecha (DatePart) para mostrar los pedidos del cuarto trimestre.
FechaPedido SerieFecha(Año
([FechaPedido]),
Mes([FechaPedido])+1, 1)-1 Utiliza las funciones SerieFecha (DateSerial), Año (Year) y Mes (Month) para mostrar los pedidos del último día de cada mes.
FechaPedido Año([FechaPedido])=
Año(Ahora()) Y Mes([FechaPedido])=
Mes(Ahora()) Utiliza las funciones Año (Year) y Mes (Month) y el operador Y (And) para mostrar los pedidos del año y el mes actual.
Respuesta
1
Primero decirte que la configuración de los campos de fecha en access y su equivalente en SQL (que, en definitiva es lo que ejecuta el motor Jet) es un poco jodidillo. Controla que los criterios que tienes establecidos para la configuración del idioma y la configuración regional del sistema y de las aplicaciones que estás desarrollando, sea la misma.
Por lo general esto suele ser así, pero podría suceder que, por cualquier motivo, se te haya descofigurado con lo que estarías llamando "día" a lo que el sistema reconoce como "mes", o que estuvieses considerando un separador de fecha que el sistema no reconoce.
Pero vamos, suponiendo que todo esto está solucionado, cómo haría yo la consulta sería tomando un campo que devolviera sólo el día de la fecha en lugar de la fecha.
Es decir, en la cláusula SELECT de la consulta (o en el mismo diseñador de consultas de Access) añade un campo que sea
Expr1: Día([CampoDeFecha])
Y que te devuelve un numérico con el día de la fecha.
Con esto sólo tienes que introducir el criterio que quieras en éste campo para obtener lo que buscas, ¿no?
Respuesta
1
En un principio tu consulta funciona perfectamente, eso si día(fecha) y no día(fecha()).
Si no puedes probar con val(format(fecha,"dd"))
Que en teoría devuelve lo mismo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas