Consulta manejando fechas

26/05/2004 - 00:29 por Omar Flores | Informe spam
Que tal, Necesito ayuda para hecer la siguiente consulta:

De una tabla con un campo Nombre de tipo varchar y uno FechaNacimiento
de tipo datetime necesito seleccionar todos los registros que en
la fecha de nacimiento esten dentro del mes actual (el mes lo voy
a tomar de la fecha del sistema y lo quiero pasar como parámetro en una
aplicación Web) .

Por ejemplo

Alguien1 15/04/2004
Alguien2 15/05/2004
alguien3 15/05/2004

En este caso sólo sería:

Alguien2 15/05/2004

Ojalá y me puedan ayudar

Preguntas similare

Leer las respuestas

#1 Javier Loria
26/05/2004 - 00:27 | Informe spam
Hola Omar:
Algo como:
SELECT Nombre, FechaNacimiento
FROM Tabla
WHERE DATEPART(Month, GETDATE())ÚTEPART(Month, FechaNacimiento)
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Omar Flores escribio:
Que tal, Necesito ayuda para hecer la siguiente consulta:

De una tabla con un campo Nombre de tipo varchar y uno FechaNacimiento
de tipo datetime necesito seleccionar todos los registros que en
la fecha de nacimiento esten dentro del mes actual (el mes lo voy
a tomar de la fecha del sistema y lo quiero pasar como parámetro en
una aplicación Web) .

Por ejemplo

Alguien1 15/04/2004
Alguien2 15/05/2004
alguien3 15/05/2004

En este caso sólo sería:

Alguien2 15/05/2004

Ojalá y me puedan ayudar
Respuesta Responder a este mensaje
#2 Maxi
26/05/2004 - 04:40 | Informe spam
Hola Javier!! no se si es bueno hcaer ello ya que nuestro Motor no hara uso
de los indices :(

Lo que yo recomiendo es que dentro del Store tenga la logica y se pase como
variable y no usar funciones dentro de las querys, pero ojo es solo un
comentario, lo tuyo funciona muy bien :-)




Salu2

Maxi

Desarrollador 3 estrellas .NET
Buenos Aires - Argentina

MSN:

"Javier Loria" escribió en el mensaje
news:%
Hola Omar:
Algo como:
> SELECT Nombre, FechaNacimiento
FROM Tabla
WHERE DATEPART(Month, GETDATE())ÚTEPART(Month, FechaNacimiento)
> Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Omar Flores escribio:
> Que tal, Necesito ayuda para hecer la siguiente consulta:
>
> De una tabla con un campo Nombre de tipo varchar y uno FechaNacimiento
> de tipo datetime necesito seleccionar todos los registros que en
> la fecha de nacimiento esten dentro del mes actual (el mes lo voy
> a tomar de la fecha del sistema y lo quiero pasar como parámetro en
> una aplicación Web) .
>
> Por ejemplo
>
> Alguien1 15/04/2004
> Alguien2 15/05/2004
> alguien3 15/05/2004
>
> En este caso sólo sería:
>
> Alguien2 15/05/2004
>
> Ojalá y me puedan ayudar


Respuesta Responder a este mensaje
#3 Javier Loria
26/05/2004 - 14:48 | Informe spam
Hola Max:
Asi es, en este caso el SQL no usara indices casi nunca, ni cambiando la
sentencia, ni haciendola en procedimientos, ni llamandola directamente desde
el cliente, e incluso cambiando la sintaxis es muy es poco probable que se
usen indices.
La unica forma de lograr que se usen indices seria construyendo una
columna calculada Mes que sea la funcion DATEPART(Month, FechaNacimiento), y
construir un indice sobre esta columna. Aun asi por ser un indice poco
selectivo (1/12) es muy poco probable que se use, a menos que el indice sea
clustered, pero esto me parecio una solucion extrema. No obstante si Omar
tiene decenas de miles de filas y esta consulta se realiza con mucha
frecuencia y la considera muy lenta podria considerar esta solucion.
Por ultimo, en este caso yo no usaria stores, porque no se requiere
parametros, y aun cuando fueran necesarios una funcion in-line para poder
usarla como tabla. Una vista si tendria mas sentido, si se reutiliza en
otras consultas:
=CREATE VIEW CumpleanosDelMes
AS
SELECT Nombre, FechaNacimiento
FROM Tabla
WHERE DATEPART(Month, GETDATE())ÚTEPART(Month, FechaNacimiento)
= Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Maxi escribio:
Hola Javier!! no se si es bueno hcaer ello ya que nuestro Motor no
hara uso de los indices :(

Lo que yo recomiendo es que dentro del Store tenga la logica y se
pase como variable y no usar funciones dentro de las querys, pero ojo
es solo un comentario, lo tuyo funciona muy bien :-)




"Javier Loria" escribió en el mensaje
news:%
Hola Omar:
Algo como:
>> SELECT Nombre, FechaNacimiento
FROM Tabla
WHERE DATEPART(Month, GETDATE())ÚTEPART(Month, FechaNacimiento)
>> Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.
Omar Flores escribio:
Que tal, Necesito ayuda para hecer la siguiente consulta:

De una tabla con un campo Nombre de tipo varchar y uno
FechaNacimiento de tipo datetime necesito seleccionar todos los
registros que en
la fecha de nacimiento esten dentro del mes actual (el mes lo voy
a tomar de la fecha del sistema y lo quiero pasar como parámetro en
una aplicación Web) .

Por ejemplo

Alguien1 15/04/2004
Alguien2 15/05/2004
alguien3 15/05/2004

En este caso sólo sería:

Alguien2 15/05/2004

Ojalá y me puedan ayudar
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida