Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

como hacer busqueda de fechas del tipo dd/mm/yyyy

Estas en el tema de como hacer busqueda de fechas del tipo dd/mm/yyyy en el foro de SQL Server en Foros del Web. Que tal, bueno ahora necesito hacer un select donde pueda hacer una comparacion como esta. variables a comparar: fechaini = 21/11/2007 fechafin = 30/11/2007 campo ...
  #1 (permalink)  
Antiguo 06/12/2007, 11:27
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 11 meses
Puntos: 0
como hacer busqueda de fechas del tipo dd/mm/yyyy

Que tal, bueno ahora necesito hacer un select donde pueda hacer una comparacion como esta.

variables a comparar: fechaini = 21/11/2007
fechafin = 30/11/2007
campo fecha de mi tabla sql = 21/11/2007 08:59:21 p.m.

Select * from tabla
where cliente=5 and Fecha_Registro>fechaini and Fecha_Registro<fechafin


como le puedo hacer intento con el convert pero no me funciona
__________________
" Recuerda , estas donde debes estar ..."
  #2 (permalink)  
Antiguo 06/12/2007, 12:00
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

bueno ya pude con esta sentencia, solo que no me hace bien el between =S


SELECT *
FROM dbo.DS_Peticiones
WHERE (Peticiones_Numero_Distribuidores = 5) AND (CONVERT(char(12), Peticiones_Fecha_registro, 103) between '21/11/2007' AND '05/12/2007')


esta ultima fecha no me la toma en cuenta, que puede ser???
__________________
" Recuerda , estas donde debes estar ..."
  #3 (permalink)  
Antiguo 06/12/2007, 12:16
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 7 meses
Puntos: 3
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

prueba así:

SELECT *
FROM dbo.DS_Peticiones
WHERE (Peticiones_Numero_Distribuidores = 5) AND Peticiones_Fecha_registro
between '20071121' AND '20071206'

no puedes llevar la fecha a Char porque sino el between lo hace por orden alfabético, no por fechas.

Pon un dia despues de la fecha que buscas, ya que por si sola busca el dia a las 00:00

saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #4 (permalink)  
Antiguo 06/12/2007, 12:44
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

El tratamieno de fechas, ya se ha tocado mas de una vez en este foro, incluso, hay gente que se ha dedicado el estudio sobre este aspecto.

Me sorprende que aun existan gentes que se empeñan en dar un trato totalmente inadecuado a este tipo de datos.

Para mayor referencia:

http://www.wikilearning.com/manejo_d...ccp-6426-1.htm

http://msmvps.com/blogs/maxiaccotto/...de-fechas.aspx
  #5 (permalink)  
Antiguo 06/12/2007, 12:44
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

Cita:
Iniciado por Gaby_Corr Ver Mensaje
Que tal, bueno ahora necesito hacer un select donde pueda hacer una comparacion como esta.

variables a comparar: fechaini = 21/11/2007
fechafin = 30/11/2007
campo fecha de mi tabla sql = 21/11/2007 08:59:21 p.m.

Select * from tabla
where cliente=5 and Fecha_Registro>fechaini and Fecha_Registro<fechafin


como le puedo hacer intento con el convert pero no me funciona
deberas escribir asi en el where

convert(datetime,fecha_registro,103) between convert(datetime,fechaini,103) and convert(datetime,fecha_fin,103)
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #6 (permalink)  
Antiguo 06/12/2007, 12:46
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

Cita:
Iniciado por iislas Ver Mensaje
El tratamieno de fechas, ya se ha tocado mas de una vez en este foro, incluso, hay gente que se ha dedicado el estudio sobre este aspecto.

Me sorprende que aun existan gentes que se empeñan en dar un trato totalmente inadecuado a este tipo de datos.

Para mayor referencia:

http://www.wikilearning.com/manejo_d...ccp-6426-1.htm

http://msmvps.com/blogs/maxiaccotto/...de-fechas.aspx
creo qu esa no es manera de tratar a las personas, tu fuiste ignorante de algo alguna vez, y si te trataron asi, pues deberias saber que se siente que a una persona la humillen de esa forma, lo mas correcto es 1) no opines y esperar a que un moderador le diga que primero debe de buscar en el foro, etc etc o 2) resolverle el problema, es algo tan sencillo, que te quito mas tiempo resonderle con tu groseria que escribir la solucion.
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.

Última edición por xcars; 06/12/2007 a las 12:50 Razón: escribi mal una palabra
  #7 (permalink)  
Antiguo 06/12/2007, 12:55
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

xcars

10000000 de disculpas si crees o sientes que mi respuesta fue una muestra de burla o algo por el estilo, no soy primerizo en este y otros muchos foros y siempre participo de la forma mas humilde posible.

Mi comentario estaba enfocado a que desde 6.5 (1983 o 82, si no mal recuerdo), ya se hablaba sobre el tratamiento de los campos fecha orientados a un formato ANSI como muchos motores lo hacen.

En fin, no fue mi intencion, una vez mas, mil disculpas.

Alclaro: SIGO SIENDO IGNORANTE, Gracias a Dios, eso me da la oportunidad de seguir aprendiendo cada dia nuevas cosas.
  #8 (permalink)  
Antiguo 06/12/2007, 12:58
Avatar de xcars  
Fecha de Ingreso: mayo-2005
Ubicación: El Salvador
Mensajes: 753
Antigüedad: 19 años
Puntos: 4
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

bien humildes tus respuestas, ya quisiera ver cuando no lo sos ajajjaj
en fin es en beneficio del foro, y no tuyo, y pues desde 1973 ya habia problemas con las fechas, pero no hablare de eso, porque no es una muestra de conocimientos la discusion aca, es sobre el manejo de la inteligencia emocional que veo te falta mucho

Cita:
Iniciado por iislas Ver Mensaje
xcars

10000000 de disculpas si crees o sientes que mi respuesta fue una muestra de burla o algo por el estilo, no soy primerizo en este y otros muchos foros y siempre participo de la forma mas humilde posible.

Mi comentario estaba enfocado a que desde 6.5 (1983 o 82, si no mal recuerdo), ya se hablaba sobre el tratabmiento de los campos fecha orientados a un formato ANSI como muchos motores lo hacen.

En fin, no fue mi intencion, una vez mas, mil disculpas.

Alclaro: SIGO SIENDO IGNORANTE, Gracias a Dios, eso me da la oportunidad de seguir aprendiendo cada dia nuevas cosas.
__________________
Con Microaplicaciones puedes hacer tu tienda en línea de forma sencilla y rápida, sin costos ocultos y con mucha responsabilidad.
  #9 (permalink)  
Antiguo 06/12/2007, 14:42
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

xcars

Dios me tenga confesado, es la primera vez que alguien me dice que tengo "falta" en el MANEJO DE INTELIGENCIA EMOCIONAL, tendre que hacer cita con mi psicologo, hoy no es mi dia.

En fin, a eso se arriesga uno en los foros, no es la primera vez que me pasa, incluso he recibido toda clase de insultos, claro esta, que si no los quisiera recibir, simplemente no me pongo a contestar preguntas y me dedico a ver el movimiento de las constelaciones.

Esa es una apreciacion personal y la respeto.

Espero que me des algun dia la oportunidad de aprender a como manejar la inteligencia emocional.

Saludos.
  #10 (permalink)  
Antiguo 06/12/2007, 16:17
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

bueno gracias por sus aportaciones, sabia que alguien por ahi me iba a regañar por que puse un tema tal vez ya muy leido o que se yo, pero como busque en internet y no encontre nada que me sacara de la duda por eso lo puse aqui, el foro siempre ha sido mi primer recurso de busqueda.. pero en fin ya estoy acostumbrada a ese tipo de comentarios, jejeje..

y bueno no es para que se digan cosas que si tu o que si yo.. mas bien hay q aportar cosas buenas a esto no?

bueno para empezar ni sabia que tenia que poner un dia mas pero ya vi que me funciono !! =)

ahora voy a pasarlo a mi codigo asp para que pueda hacer bien las busquedas.. ahi les aviso si tengo mas dudillas

gracias a todos !!!
__________________
" Recuerda , estas donde debes estar ..."
  #11 (permalink)  
Antiguo 06/12/2007, 16:27
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

bueno ahora como le sumo 1 dia para que me agregue esas tambien ??
__________________
" Recuerda , estas donde debes estar ..."
  #12 (permalink)  
Antiguo 07/12/2007, 08:46
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 7 meses
Puntos: 3
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

estimada Gaby_Corr,

tienes 2 o 3 o quizás más posibilidades, pero yo creo que lo mejor es no usar between sino hacerlo de esta manera:

SELECT *
FROM dbo.DS_Peticiones
WHERE (Peticiones_Numero_Distribuidores = 5)
AND Peticiones_Fecha_registro >= '20071121' and Peticiones_Fecha_registro < '20071206'

Esto porque el between incluye la fecha del prçoximo dia, y si tienes la (mala)suerte de tener un registro justo a las 00:00 del 20071206 te lo incuirá también.

Para sumar un dia, pues puedes hacer
select campo_fecha + 1 from tabla_con_fechas .. no se si eso quieres o_O??

Respecto de los convert, yo siempre he igualado en el formato AAAAMMDD y no he tenido problema con cambios en las configuraciones regionales ni cosas de eses estilo, nose si tal vez es mejor usar el convert, por suerte para explicarnos eso están los expertos de arriba (que ojalá no nos reten XD)

Saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #13 (permalink)  
Antiguo 07/12/2007, 13:17
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

bueno ya pude y al parecer ya no tengo problemas pero saben como seleccionar solo la fecha sin la hora ???
__________________
" Recuerda , estas donde debes estar ..."
  #14 (permalink)  
Antiguo 07/12/2007, 13:39
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

(Ahi vamos)

Estimada Gaby, para hacer SUMAS a campos de tipo DATETIME en AÑOS, MESES, DIAS, HORAS, MINUTOS, SEGUNDOS, QUINCENAS, SEMANAS, etc. cuentas con las funciones correspondientes para el manejo de fechas DATEADD(tipo, int, TuFecha)

Ejemplo, si quiero SUMAR UN DIA

SELECT DATEADD(dd, 1, GETDATE())

Si lo quiero RESTAR

SELECT DATEADD(dd, -1, GETDATE())

Ahora bien, para menejar solamente la fecha, cuentas con las funciones CAST o CONVERT, ejemplo:

SELECT CONVERT(CHAR(10), GETDATE(), 112)

O solo quiero la hora

SELECT CONVERT(CHAR(5), GETDATE(), 108)

Te sugiero, consultes en tu AYUDA EN LINEA (BOL = Books on line), este y muchos otros temas.

En cuanto al MANEJO DE FECHAS, te he enviado 2 links, en lo personal, sumamente interesantes.

Saludos.
  #15 (permalink)  
Antiguo 07/12/2007, 18:31
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

ah si, ya pude muchas gracias iislas
__________________
" Recuerda , estas donde debes estar ..."
  #16 (permalink)  
Antiguo 07/12/2007, 19:11
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

De nada, es un placer........
  #17 (permalink)  
Antiguo 14/12/2007, 09:50
Avatar de Gaby_Corr  
Fecha de Ingreso: junio-2005
Mensajes: 672
Antigüedad: 18 años, 11 meses
Puntos: 0
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

hola de nuevo, tengo una duda por que marca este error en mi pagina si en sql lo hace bien

esta es mi sentencia sql:

sql = "SELECT DATEDIFF([day], CONVERT(datetime, Peticiones_Fecha_Registro, 103),"
sql = sql & " CONVERT(datetime, '"& FechaAceptacion &"', 103)) as antiguedad "
sql = sql & " FROM DS_Peticiones "
sql = sql & " WHERE peticiones_numero_distribuidores ="& idDist
sql = sql & " AND peticiones_id ="& nPeticion

y me marca el sig error:
Microsoft OLE DB Provider for SQL Server (0x80040E07)
Syntax error converting datetime from character string.


creo que es la FechaAceptacion pero no entiendo por que aveces si funciona y aveces no :S
FechaAceptacion = '12/12/2007 01:19:05 p.m.' por poner un ejemplo
__________________
" Recuerda , estas donde debes estar ..."
  #18 (permalink)  
Antiguo 14/12/2007, 12:14
Avatar de Sir Matrix  
Fecha de Ingreso: octubre-2000
Ubicación: Dentro de mi cabeza. ono?
Mensajes: 1.264
Antigüedad: 23 años, 7 meses
Puntos: 3
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

Hola, primeramente, no debes especificar PM si pones la hora tipo 23:59.

Por otro lado yo siempre uso fechas en este formato:
'20070527 15:30:55' por poner un ejemplo, y no da problemas.

saludos
__________________
|||| ))>_<(( ||||
www.webmagic.cl <-- esta pagina está mala, no la busquen
  #19 (permalink)  
Antiguo 17/12/2007, 14:02
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

Sir Matrix

formato ANSI o ISO (yyyymmdd hh:mm:ss, nnn), con este, ningun motor tiene problemas.

Eso lo hemos tratado durante la discusion de la posta, creo que volvimos al principio, espero que esta vez, no se me critique por dar mis comentarios.

Saludos
  #20 (permalink)  
Antiguo 02/01/2008, 12:25
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años, 1 mes
Puntos: 25
Re: como hacer busqueda de fechas del tipo dd/mm/yyyy

Gaby, más allá de tu pregunta inicial, quiero comentar que creo que te vendría bien estudiar sobre los Stored Procedures (en adelante SP), porque veo que al parecer ensamblas tu sentencia SQL como texto y luego finalmente la corres.

Eso me trae a la mente 3 problemas potenciales (seguramente hay algún otro que olvido):

1) Mantenimiento del código. Es mucho más difícil de comprender y debuguear.
2) Tienes las puertas abiertas a un ataque de SQL Injection. Si no sabes que es, en google sobran referencias.
3) Performance, pues los SP son mucho más eficientes.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:28.