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

Between sql 2005

Estas en el tema de Between sql 2005 en el foro de SQL Server en Foros del Web. hola amigos, tengo un detallito en una consulta ;a cosa esta asi tnego varios registros guardados con formato de fecha MES/DIA/AÑO y me lo guarda ...
  #1 (permalink)  
Antiguo 21/01/2011, 10:11
Avatar de Noa_  
Fecha de Ingreso: diciembre-2010
Ubicación: El Oceano de Sus Ojos ..☺
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 0
Between sql 2005

hola amigos, tengo un detallito en una consulta
;a cosa esta asi

tnego varios registros guardados
con formato de fecha

MES/DIA/AÑO

y me lo guarda asi

1/7/2011 = enero 7 de 2010

la cosa esta que cuando busco con el between
no me arroja resultado
al menos que la fecha venga

1/07/2010 espero que se fijen en el detalle
como le pueedoo hacer para que si la arroje
o tnego que guardar la fecha de otra manera
lo que pasa es que la guardo directamente desde un datetimepicker

Saludos

y gracias por sus respuestas
__________________
La Tecnologia Se Apodero de Nuestras Vidas, Sin Embargo La Ciencia Se Niega en Aceptar Nuestras Mentes
  #2 (permalink)  
Antiguo 21/01/2011, 10:22
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Between sql 2005

Si tu campo es de tipo datetime, entonces haz la busqueda en formato ANSI, es decir, yyyymmdd, y no uses between, usa >= y <=.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 21/01/2011, 10:23
Avatar de Andyma21  
Fecha de Ingreso: febrero-2010
Ubicación: Burgos
Mensajes: 7
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Between sql 2005

Hola, yo hace tiempo tube esos problemas.

Yo lo arregle guardando las fechas en la version inglesa Format(Date, "MM/DD/YYYY")

Y al extraer las fechas para que me las muestre en algún formulario las extraia Format(Date, "DD/MM/YYYY")

espero que te valga
  #4 (permalink)  
Antiguo 21/01/2011, 10:34
Avatar de Noa_  
Fecha de Ingreso: diciembre-2010
Ubicación: El Oceano de Sus Ojos ..☺
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Between sql 2005

y como haria la consulta

hise estas dos y ninguna me funcion

Cita:
Select Costumer,Register_Date from tblCostumers where Invoice_Date FORMAT(DATE, '1/7/2011') AND FORMAT(DATE, '1/21/2011')

Cita:
Select Costumer,Register_Date from tblCostumers where Invoice_Date >= '1/7/2011' AND <= '1/21/2011')
__________________
La Tecnologia Se Apodero de Nuestras Vidas, Sin Embargo La Ciencia Se Niega en Aceptar Nuestras Mentes
  #5 (permalink)  
Antiguo 21/01/2011, 10:47
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Between sql 2005

Has probado asi?
Código SQL:
Ver original
  1. SELECT Costumer,Register_Date
  2. FROM tblCostumers
  3. WHERE Invoice_Date >= '20110107'
  4. AND Invoice_Date >= '20110121'
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 21/01/2011, 10:48
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Between sql 2005

¿FORMAT?, ha caray, pues no lo conozco y seria mejor:

WHERE Invoice_Date >= '20110107' and Invoice_Date <= '20110121'
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 21/01/2011, 10:52
Avatar de Noa_  
Fecha de Ingreso: diciembre-2010
Ubicación: El Oceano de Sus Ojos ..☺
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Between sql 2005

asi es como lo hago y me marca este error


Cita:
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near '<'.
__________________
La Tecnologia Se Apodero de Nuestras Vidas, Sin Embargo La Ciencia Se Niega en Aceptar Nuestras Mentes
  #8 (permalink)  
Antiguo 21/01/2011, 11:13
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Between sql 2005

Noa, ¿Es SQL SERVER?, muestranos tu consulta...........
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 21/01/2011, 11:27
Avatar de Noa_  
Fecha de Ingreso: diciembre-2010
Ubicación: El Oceano de Sus Ojos ..☺
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Between sql 2005

ES SQL SERVER 2005 y esta es mi Consulta

Cita:
Select Costumer,Register_Date from tblCostumers where Invoice_Date FORMAT(DATE, '1/7/2011') AND FORMAT(DATE, '1/21/2011')

Cita:
Select Costumer,Register_Date from tblCostumers where Invoice_Date >= '1/7/2011' AND <= '1/21/2011')

ninguna de esas dos formas me funciona me arroja el error que menciono arriba
:(
__________________
La Tecnologia Se Apodero de Nuestras Vidas, Sin Embargo La Ciencia Se Niega en Aceptar Nuestras Mentes
  #10 (permalink)  
Antiguo 21/01/2011, 12:12
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Between sql 2005

Estimado Noa_ asi no te lo puse arriba.
La fechas tienen que ir en formato ANSI.
Usa tu segundo ejemplo.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #11 (permalink)  
Antiguo 21/01/2011, 12:29
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Between sql 2005

Tampoco asi te lo puse yo y si insistes en colocarlo como tu quieres, ¿entondes porque la solicitud de asistencia?
__________________
MCTS Isaias Islas
  #12 (permalink)  
Antiguo 21/01/2011, 12:33
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Between sql 2005

Hola compañer@s...

Noa_: como ya te comentó el compañero flaviovich y también el compañero Iislas, para comparar fechas en SQL Server debes utilizar el formato ANSI (yyyymmdd o yyyy-mm-dd) checa este artículo

http://www.mug.org.ar/SQL/ArticSQL/240.aspx

Ahí se explican a detalle cómo manejar las fechas y algunos problemas que puedes tener por los formatos.

En cuanto a la consulta que te da el compañero Flaviovich sólo hay un problema con los signos de relación, ya que el pone los dos como >= (error de dedo jejeje). Si embargo Iislas te hace la corrección en su post, de tal manera que la consulta quedaría así:

Código SQL:
Ver original
  1. SELECT Costumer,Register_Date
  2. FROM tblCostumers
  3. WHERE
  4. Invoice_Date >= '20110107' AND
  5. Invoice_Date <= '20110121'

Por otro lado, creo que estás mezclando sintaxis de varios manejadores de BD, pues hasta donde recuerdo FORMAT no se utiliza en SQL Server... Para formatear la fecha utiliza la función CONVERT y el estilo que se adecue a lo que quieres.

Saludos
Leo.
  #13 (permalink)  
Antiguo 21/01/2011, 15:40
Avatar de Noa_  
Fecha de Ingreso: diciembre-2010
Ubicación: El Oceano de Sus Ojos ..☺
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Between sql 2005

Leoo, te veoo y no lo creo!!! jaja Muuuuchas gracias
lo solucione tal cual me dijiste

aqui dejo la consulta por si a alguien en un futuro le sirve

muchas Gracias leoo me diste la Luz!!

Cita:
select * FROM tblProductos where Fecha between convert(datetime,'1/07/2011') and convert(datetime,'1/20/2011')
__________________
La Tecnologia Se Apodero de Nuestras Vidas, Sin Embargo La Ciencia Se Niega en Aceptar Nuestras Mentes
  #14 (permalink)  
Antiguo 21/01/2011, 15:53
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Between sql 2005

Noa

Si utilizas el FORMATO ANSI (yyyymmdd), no tienes la necesidad de "forzar" a tu motor de hacer CONVERT.

Ademas de que las fechas, se recomienda (incluso en el examen 70-433 Development), que se deben siempre comparar con >= y <=

No entiendo la insistencia de hacerlo de otra forma.
__________________
MCTS Isaias Islas
  #15 (permalink)  
Antiguo 21/01/2011, 16:27
Avatar de Noa_  
Fecha de Ingreso: diciembre-2010
Ubicación: El Oceano de Sus Ojos ..☺
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Between sql 2005

No se como se usa eso del Formato ANSII
lei el manual que me pusieron en un link,
pero no entendi muy claroo
y solo era una consulta

:(
__________________
La Tecnologia Se Apodero de Nuestras Vidas, Sin Embargo La Ciencia Se Niega en Aceptar Nuestras Mentes
  #16 (permalink)  
Antiguo 21/01/2011, 16:53
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Between sql 2005

Noa_

"Al cliente, lo que pida (aunque este mal)"

Saludos
__________________
MCTS Isaias Islas
  #17 (permalink)  
Antiguo 24/01/2011, 09:28
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Between sql 2005

Cita:
Iniciado por iislas Ver Mensaje
Noa

Si utilizas el FORMATO ANSI (yyyymmdd), no tienes la necesidad de "forzar" a tu motor de hacer CONVERT.

Ademas de que las fechas, se recomienda (incluso en el examen 70-433 Development), que se deben siempre comparar con >= y <=

No entiendo la insistencia de hacerlo de otra forma.
Me apunto a la recomendación de IISLAS y Flaviovich, con ANSI no hace falta saber de CONVERT.
Eso está clarísimo. Es más, a la hora de migrar BBDD de versiones y/o servidores, los códigos de aplicaciones suelen fallar por estos motivos...

Saludos

Última edición por ejbsoft; 24/01/2011 a las 09:33
  #18 (permalink)  
Antiguo 24/01/2011, 09:35
Avatar de Noa_  
Fecha de Ingreso: diciembre-2010
Ubicación: El Oceano de Sus Ojos ..☺
Mensajes: 132
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Between sql 2005

companieroas no se como es el formato ANSI
nose como funciona ni como se usa
pero buscare informacion sobre esoo haber que tal

gracias por sus recomendaciones
__________________
La Tecnologia Se Apodero de Nuestras Vidas, Sin Embargo La Ciencia Se Niega en Aceptar Nuestras Mentes
  #19 (permalink)  
Antiguo 24/01/2011, 09:43
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Between sql 2005

Hola de nuevo

yyyymmdd=20110124

IISLAS:

"Al cliente, lo que pida (aunque este mal)"
La profesionalidad garantiza y para eso estamos...

Saludos

Etiquetas: sql
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 00:57.