Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda fechas sql server!!

Estas en el tema de Ayuda fechas sql server!! en el foro de Visual Basic clásico en Foros del Web. hola a toda la comunidad! agradeceria si alguien me puede ayudar con un pequeño problema q me ha surgido, q al parecer he visto en ...
  #1 (permalink)  
Antiguo 08/02/2009, 09:14
 
Fecha de Ingreso: diciembre-2008
Mensajes: 5
Antigüedad: 15 años, 5 meses
Puntos: 0
Exclamación Ayuda fechas sql server!!

hola a toda la comunidad! agradeceria si alguien me puede ayudar con un pequeño problema q me ha surgido, q al parecer he visto en muchos foros de discucion y q parece muy comun entre los programadores...
cuento con una base de datos realizada en sql server, la cual posee una una tabla llamada RECIBOSCLIENTES, q almacena recibos, con un campo vencimiento de tipo "DATETIME", ahora bien, en mi aplicacion de V.BASIC 2005, poseo un formulario de busqueda de recibos, con 2 controles textbox (txtDesdeFecha y txtHastaFecha) donde ingreso las fechas para la busqueda..
Aqui recide mi problema, en como realizar la busqueda en la consulta SELECT de sql, para q me devuelva los registros correspondientes al rango de busqueda comprendido entre ambas fechas...entre otras probe con la siguiente cadena de busqueda, pero no tuve exito...

"Select * From recibosclientes where vencimiento BETWEEN '" & Format(vFechaInicial, "dd/MM/yyyy") & "' AND '" & Format(vFechaFinal, "dd/MM/yyyy") & "'"


espero su ayuda, saludos!!
  #2 (permalink)  
Antiguo 08/02/2009, 11:38
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Ayuda fechas sql server!!

Qué tal?

No he trabajado nunca con SQL Server, pero los errores más comunes al trabajar con fechas suelen ser los delimitadores de campo y el formato. En la mayoría de los SGBD se aceptan las comillas dobles para los campos de tipo fecha ("...BETWEEN """ & format(...) & """ AND """ & ...), así que compruébalo.

Respecto a los formatos de fecha, la mayoría también trabajan con el estadounidense (mm/dd/yyyy) o el ISO (yyyy/mm/dd). Tendrías que informarte de cual usa SQL Server para pasarle las fechas como las espera.

Yo en ocasiones utilizo un truco que es tratar las fechas como Long (si no necesito la información de la hora) o como Double (si necesito la hora y la fecha o sólo la hora), ya que internamente es frecuente que se almacene este tipo de datos como un número decimal en punto fijo, guardando la parte entera el número de días transcurridos desde una fecha clave (que suele ser el 01/01/1900)y en la parte decimal una especie de valor proporcional a 24 horas, siendo 0.5 las 12:00 del mediodía. La ventaja de este sistema es que es independiente del formato horario con que esté configurado el equipo que ejecuta la aplicación, por lo que se ahorra en conversiones, comprobaciones y en muchos casos, se gana velocidad.

Si la base de datos sólo se explota con tu aplicación en VB, sí puedes declarar tranquilamente los campos de fechas como Long, ya que es VB quien se encarga de la conversión, por lo que guardará y recuperará correctamente los datos. Si quieres probarlo, ejecuta "CDate(39852)" en la ventana inmediato y verás que el resultado es "08/02/2009" (dd/mm/yyyy), o bien "CLng(#<cualquier fecha>)#", y te devolverá el número de días transcurridos desde el 01/01/1900 hasta la fecha indicada.
__________________
wile sona li mute e sona
  #3 (permalink)  
Antiguo 08/02/2009, 23:34
 
Fecha de Ingreso: febrero-2009
Ubicación: Villa Ocampo - Santa Fe
Mensajes: 100
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda fechas sql server!!

Intenta lo siguiente:
"Select * From recibosclientes where vencimiento >= '" & Format(vFechaInicial, "dd/MM/yyyy") & "' AND vencimiento <= '" & Format(vFechaFinal, "dd/MM/yyyy") & "' "
si esto no te funciona cambia el formato de fecha o sea asi:

"Select * From recibosclientes where vencimiento >= '" & Format(vFechaInicial, "dd/MM/yyyy") & "' AND vencimiento <= '" & Format(vFechaFinal, "dd/MM/yyyy") & "' "

Yo uso muy poco SQL Server y de esa manera no tengo ningun problema
espero te sirva
  #4 (permalink)  
Antiguo 08/02/2009, 23:36
 
Fecha de Ingreso: febrero-2009
Ubicación: Villa Ocampo - Santa Fe
Mensajes: 100
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda fechas sql server!!

perdon la segunda linea debería ser asi:
"Select * From recibosclientes where vencimiento >= '" & Format(vFechaInicial, "mm/dd/yyyy") & "' AND vencimiento <= '" & Format(vFechaFinal, '"mm/dd/yyyy") & "' "
y no te olvides de probar quitar las comillas simples en caso de ser necesario
  #5 (permalink)  
Antiguo 09/02/2009, 08:17
Colaborador
 
Fecha de Ingreso: enero-2008
Ubicación: Unas veces aquí, otras veces allí
Mensajes: 1.482
Antigüedad: 16 años, 3 meses
Puntos: 37
Respuesta: Ayuda fechas sql server!!

Cita:
Iniciado por matias22_rhcp Ver Mensaje
hola a toda la comunidad! agradeceria si alguien me puede ayudar con un pequeño problema q me ha surgido, q al parecer he visto en muchos foros de discucion y q parece muy comun entre los programadores...
cuento con una base de datos realizada en sql server, la cual posee una una tabla llamada RECIBOSCLIENTES, q almacena recibos, con un campo vencimiento de tipo "DATETIME", ahora bien, en mi aplicacion de V.BASIC 2005, poseo un formulario de busqueda de recibos, con 2 controles textbox (txtDesdeFecha y txtHastaFecha) donde ingreso las fechas para la busqueda..
Aqui recide mi problema, en como realizar la busqueda en la consulta SELECT de sql, para q me devuelva los registros correspondientes al rango de busqueda comprendido entre ambas fechas...entre otras probe con la siguiente cadena de busqueda, pero no tuve exito...

"Select * From recibosclientes where vencimiento BETWEEN '" & Format(vFechaInicial, "dd/MM/yyyy") & "' AND '" & Format(vFechaFinal, "dd/MM/yyyy") & "'"


espero su ayuda, saludos!!
Hola, SQL (en casi todas su versiones) suele guardar las fechas en formato año-mes-día

prueba así:
Format(Fecha, "yyyy-mm-dd")

ó

Format(Fecha, "yyyymmdd")

  #6 (permalink)  
Antiguo 12/02/2009, 10:04
 
Fecha de Ingreso: febrero-2009
Mensajes: 18
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Ayuda fechas sql server!!

La verdad es que sql server no guarda las fechas con un formato de dia, mes año.. sino que las guarda como "enteros de 4 bytes", para el tipo datetime, y enteros de 2 bytes para el tipo smalldatetime.
y Microsoft® SQL Server rechaza todos los valores que no reconoce como fechas comprendidas entre 1753 y 9999, (formato datetime, el smalldaetetiem, tiene un rango menor).
Y si no estoy mal, el sql muestra la fecha de acuerdo a la configuración del pc (en el cual está instalado) y como dice avellaneda la mayoría es con formato año-mes-día, es dado que la mayoría de los server en donde se encuentra instalado se encuentran en inglés.
Lo otro, yo prefiero comparar fechas con DATEDIFF(), es muy útil.
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 13:51.