Foros del Web » Programación para mayores de 30 ;) » .NET »

formatos fechas

Estas en el tema de formatos fechas en el foro de .NET en Foros del Web. Buenas tengo la siguiente instruccion sql contra una base de datos Access, pero el where no me lo hace bien. Creo que me está comparando ...
  #1 (permalink)  
Antiguo 15/03/2005, 08:48
 
Fecha de Ingreso: marzo-2005
Mensajes: 122
Antigüedad: 19 años, 2 meses
Puntos: 0
Exclamación formatos fechas

Buenas tengo la siguiente instruccion sql contra una base de datos Access, pero el where no me lo hace bien. Creo que me está comparando mal el formato de access con el de la variable Session. Con pongo cvdate() para convertir las 2 fechas al mismo formato, pero no me encuentra los registros bien entre las 2 fechas que le digo.

SELECT * FROM (Hoteles LEFT JOIN HotelesTotalHabitaciones ON Hoteles.codigo = HotelesTotalHabitaciones.Codigo) LEFT JOIN HotelesCampañas ON HotelesTotalHabitaciones.Codigo = HotelesCampañas.Codigo where cvdate(HotelesCampañas.campañade) <= cvdate('" & Session("Nfecha1") & "') and cvdate(HotelesCampañas.campañahasta) >= cvdate('" & Session("Nfecha1") & "') order by Hotelestotalhabitaciones.codigo

Que funcion puedo poner para que me compare dd/mm/yyyy tanto en la base de datos como en mi variable?

Un Saludo
  #2 (permalink)  
Antiguo 15/03/2005, 09:21
 
Fecha de Ingreso: octubre-2004
Mensajes: 94
Antigüedad: 19 años, 7 meses
Puntos: 0
Prueba a comparar las fechas que tienes en la base de datos con una fecha en formato yyyy/mm/dd. Igual es que Access te lo está devolviendo en formato americano.
  #3 (permalink)  
Antiguo 15/03/2005, 09:29
 
Fecha de Ingreso: marzo-2005
Mensajes: 122
Antigüedad: 19 años, 2 meses
Puntos: 0
fechas

con que funcion le pongo yyyy/mm/dd

Cita:
Iniciado por hectorll
Prueba a comparar las fechas que tienes en la base de datos con una fecha en formato yyyy/mm/dd. Igual es que Access te lo está devolviendo en formato americano.
  #4 (permalink)  
Antiguo 15/03/2005, 09:31
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
pro ejemplo:
dim d as date
d=ctype(txtfecha.text,date)
d.tostring("dd/MM/yyyy")
  #5 (permalink)  
Antiguo 15/03/2005, 09:45
 
Fecha de Ingreso: marzo-2005
Mensajes: 122
Antigüedad: 19 años, 2 meses
Puntos: 0
fechas

INCREIBLE tengo que comparar los campos de la base de datos con esto que me diste, pero el formato al revés:

d=ctype(session("nfecha1",date)
d.tostring("yyyy/MM/dd")

Con esto si que funciona.

Por que pasa esto?
Como configuro el Access para que tenga dd/mm/yyyy????

Cita:
Iniciado por neivan
pro ejemplo:
dim d as date
d=ctype(txtfecha.text,date)
d.tostring("dd/MM/yyyy")

Última edición por jiglesiasn; 15/03/2005 a las 09:48 Razón: falta algo
  #6 (permalink)  
Antiguo 15/03/2005, 09:56
Avatar de neivan  
Fecha de Ingreso: febrero-2005
Mensajes: 539
Antigüedad: 19 años, 3 meses
Puntos: 1
no me preguntes el por q,lo de las fechas sule tener su miga,sobre too con access,en un examen me las vi putas por culpa d ela fecha y al final no me funciono de puro milagro,buff,desde entonces me dan pa tras,jejeje y ahora me toco hacer una gestion d eocupacion de cursos aulas por fehas y horas asi q....
  #7 (permalink)  
Antiguo 15/03/2005, 10:00
 
Fecha de Ingreso: octubre-2004
Mensajes: 94
Antigüedad: 19 años, 7 meses
Puntos: 0
A mi también me había pasado una vez con Access. Access al devolver la fecha la debe devolver en formato americano yyyy/mm/dd, aunque luego vas a la BD y muestras el listado y ves las fechas con el formato dd/mm/yyyy.
Un saludo.
  #8 (permalink)  
Antiguo 15/03/2005, 10:03
 
Fecha de Ingreso: marzo-2005
Mensajes: 122
Antigüedad: 19 años, 2 meses
Puntos: 0
fechas

Pues abrá que pelearse un poco con los formatos de las fechas.

Lo curiosos es que en algunas funciones funciona con un formato y en otras con otro.

Tambien observe que hay que tener cuidado si copias fechas de excel a access, suele coger el formato al revés aunque lo veas bien.

Es microsoft.....

Si sabeis alguna forma de comparar fechas y busquedas en la base de datos contra access que vaya bien, por favor....
  #9 (permalink)  
Antiguo 15/03/2005, 10:08
 
Fecha de Ingreso: octubre-2004
Mensajes: 94
Antigüedad: 19 años, 7 meses
Puntos: 0
En Access la que acabas de usar.
  #10 (permalink)  
Antiguo 15/03/2005, 10:10
 
Fecha de Ingreso: marzo-2005
Mensajes: 122
Antigüedad: 19 años, 2 meses
Puntos: 0
fechas

Ok. Gracias. Aunque aún tengo que hacer más pruebas por que tengo mis dudas de que lo esté haciendo bien.

Gracias a Todos.
Un Saludo dsd Coruña
  #11 (permalink)  
Antiguo 26/07/2005, 06:28
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 10 meses
Puntos: 0
hola, yo tengo un problema parecido, pero no consigo saber como arreglarlo. Os pongo la sentencia sql, no me da error pero me muestra "noticias" anteriores a la fecha.

string sql= " select * from NOTICIAS where 'fecha_fin >= " + DateTime.Now+" ' ";

en sí, una fecha como esta: 26/07/2005 00:00:00 es mayor que está otra 24/07/2005 14:34:15, por lo tanto dicha noticias está caducada y no debería salir... porque en cambio si me sale. Hago alguna cosa mal al comparar¿?¿?

gracias.
  #12 (permalink)  
Antiguo 26/07/2005, 15:39
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 3 meses
Puntos: 50
Cita:
en sí, una fecha como esta: 26/07/2005 00:00:00 es mayor que está otra 24/07/2005 14:34:15, por lo tanto dicha noticias está caducada y no debería salir... porque en cambio si me sale. Hago alguna cosa mal al comparar¿?¿?
Me imagino que estás usando sql server verdad ?? si es así.. prueba hacerlo de la siguiente forma:

Cita:
string sql= " select * from NOTICIAS where fecha_fin >= CONVERT(DATETIME,' " + DateTime.Now.ToString("dd/MM/yyyy") +" ' ,103)";
Salu2
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #13 (permalink)  
Antiguo 26/07/2005, 15:55
Avatar de Alexis_m20  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 71
Antigüedad: 20 años, 4 meses
Puntos: 0
Now.toString("dd\/MM\/yyyy")

Con eso da el formato correctio de

26/06/2005 por ejemplo

y funciona
__________________
_______________________
Si Puedo Ayudar lo HARE
Mi web Pages
  #14 (permalink)  
Antiguo 27/07/2005, 00:21
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 10 meses
Puntos: 0
Cita:
Iniciado por RootK
Me imagino que estás usando sql server verdad ?? si es así.. prueba hacerlo de la siguiente forma:
perdona se me olvidó decirlo, estoy utilizando access y dicho atributo de la tabla es del tipo Fecha/Hora con formato=fecha corta o larga, he probado con ambas y nada.

Por cierto me he dado cuenta que el problema en sí reside en que access tiene las fechas así: 27/07/2005 y en cambio el DateTime lo tiene así: 27/7/2005

que puedo hacer¿?¿?

Última edición por nsmsndie; 27/07/2005 a las 01:03
  #15 (permalink)  
Antiguo 27/07/2005, 01:11
Avatar de nsmsndie  
Fecha de Ingreso: julio-2005
Mensajes: 61
Antigüedad: 18 años, 10 meses
Puntos: 0
Lo conseguí, al final solución a la inversa, como estoy utilizando access me he ido a access he realizado la consulta que quería la he copiado y colocado así:

sqlconsulta = "SELECT * FROM NOTICIAS WHERE (((fecha_fin)>=Date()))";

y funciona!!.

gracias
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 15:17.