Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 2
Ir a la página Anterior  1, 2
 
Busqueda Filtrada
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Re: Busqueda Filtrada 
 
jousseph escribió: [Ver mensaje]

Señor codificador fijese que anoche note que las fechas tenian un problema al almacenarse tanto en sqlite como en mysql en sqlite son por ejemplo hoy es 11/01/2014 y en la bd es sqlite: 01/11/2014 cosa que no comprendia en mysql es al reves 2014-01-11 pero el que realmente me la ponia mal es en el bendito gridview que me salia 01/11/2013 entonces dije mejor voy a cambiar el datebox por textbox y el campo de la bd en text y se guardo bien porque no me cuadraban las consultas, miren la imagen:

por eso

prueba empezando de nuevo ingresando las fechas pero ahora en formato
'YYYY-MM-DD' o 'YYYYMMDD'  

como el usuario las ingresa en formato dd-mm-yyy
creas una funcion con split que las reordene para usarla en sql

"insert into tabla_confechas  (campofecha) values ('2014-01-11');"
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Busqueda Filtrada 
 
Citar:
Resumiendo un poco, no hay que preocuparse mucho por las fechas y su formato siempre que usemos controles diseñados para tal fin, porque internamente van a representar un objeto de tipo fecha en el formato de nuestro idioma. Por lo tanto, si no rompemos la cadena, no tendremos problemas. Las bases de datos como mysql, tienen un tipo de campo DATE o DATETIME, que podemos extraer en gambas como un objeto de tipo date de gambas, pero si lo hacemos como cadena, empezarán nuestros problemas. En sqlite3 aunque no tiene realmente tipos de datos (todo son strings) si usamos objetos date para guardar y consultar de la manera que he explicado, gambas hará las conversiones por nosotros y sólo en casos muy concretos tendremos que formatear una fecha para representarla en un control de texto, pero repito, nunca para guardarla en la BD.


Señor JGUARDON como esta, feliz año.

Fijese que yo guardo normal usando Datebox.value este control me muestra la fecha perfecto por ejemplo si hoy es (11/01/2014) pero al hacer insert into Datebox.value, se guarda alla en mysql como 2014-01-11 que al traerlo a la Gridview me la muestra peor (01/11/2014) como ya sabemos pues para mostrar en la gridview hacemos esto:

Lista2[fila, 2].Text = conexion.hresul["fecha_delito"]-----Aqui me di cuenta que usa string de Text y dije si le coloco date quiza funcione pues no! y fuera de eso que me confundia mas porque me mostraba (01/11/2014)  y al intentar hacer una consulta con text o datebox no conseguia la fecha a buscar, 1-porque en la gridview me mostraba otra cosa y 2- porque la fecha real guardad era (2014-01-11 ) cuando puse esta fecha si me la consiguio en las pruebas y dije entonces como hago porque el usuario no va colocar la fecha al reves para poder realizar una consulta!, la idea es voltear esa fecha y me puse a mirar lo que coloco el señor GATOVIEJO que se hiciera la consulta con un datebox.value:

conexion.hresul = conexion.hconn.Exec("Select *from delitos where date_format(fecha_delito, '%Y/%m/%d')='" &1 Format$(DateBox_fecha_delito.value, "yyyy/mm/dd") & "'")

Y me funciono me trajo la fecha a pesar de que la fecha estuviese al reves en mysql y vi por alla en una publicacion del compañero DAVID porque estaba preocupado por lo de la Grdiview que me mostraba todo mal y puse la visualizacion en tabla asi:

Lista[fila, 3].Text = Format(conexion.hresul["fecha_delito"], "dd/mm/yyyy") --------Aqui me soluciono el problema de la fecha mostrandomela de 01/11/2014 a 11/01/2014
 



 
última edición por jousseph el Domingo, 12 Enero 2014, 00:32; editado 1 vez 
jousseph - Ver perfil del usuarioEnviar mensaje privadoVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Busqueda Filtrada 
 
Aaaaaaa yaaaaa, no entendía la cuestión del señor JGUARDON y muchas cosas, dios miiiioooo no sabia que esto era así de complicado    yo creo que dure como 4horas pensando analizando la cuestión de la fechas y las consultas y me pareció tan fabuloso todo de parte de ustedes tanto del señor JGUARDON, SHORDI, CODIFICADOR, GATOVIEJO, DAVID Y FINALMENTE AHTONIO, hice una mezcla   

Todo comienza porque la fecha se almacena al revés en MYSQL (%y-%m%d) y nuestros Datebox.Value las muestra a simple vista (dd/mm/yyyy) pero al guardarse en mysql o sqlite se ve (yyy-mm-dd), el problema es cuando hacemos las consultas que supuestamente buscamos fecha (dd/mm/yyyy) pero en realidad la maquina esta es buscando (yyy-mm-dd) por eso no consigue nada! entonces viendo el ejemplo del señor JGUARDON note esto:

conexion.hconn.Exec("Select * from delitos where fecha_delito between &1 and &2", fecha_inicio, fecha_fin) y conexion.hconn.Exec("select * from tabla where fecha_delito >= &1 and fecha_delito <= &2", fecha_inicio, fecha_fin) si uno quiere puede usar >= y <= para conseguir dichas fechas pero es mas cómodo con between que es lo mismo!, bueno dije pero esas variables fecha_inicio? y fecha_fin? que son datebox.value o que? bueno en realidad son variables del tipo string para hacer un volteo de la fecha del datebox y meterlas en fechas as string, por ejemplo:fecha_inicial=datebox.value1 y fecha_final=datebox.value2 este ejemplo lo vi del compañero DAVID Y AHTONIO, por otra parte vi que había un ejemplo del compañero david para la comparación de fechas que eran:

Citar:
Desde = Split(TextBox1.Text, "/")
'ponemos lo guiones en barritas para que el motor sqlite3 lo reconozca
'----------------------------------------------------------
DesdeSql = "'" & Desde[2] & "-" & Desde[1] & "-" & Desde[0] & " 00:00:00'"
Hasta = Split(TextBox2.Text, "/")
HastaSql = "'" & Hasta[2] & "-" & Hasta[1] & "-" & Hasta[0] & " 00:00:00'"

'y haces la busqueda
Resultados = Conexion.Exec("select * from control where dni='" & TextBox3.Text & "' and datetime(fecha) between" & DesdeSql & " and " & HastaSql)


Funciona pero es un poco tedioso, me puse a entender el codigo del compañero AHTONIO pero me lanzaba un error, la idea es agarrar la fecha de los Datebox que desde luego al meterla en las variables Fecha_inicio y Fechas_final se volteen al estilo MYSQL para que la fecha quede yyy-mm-dd y asi si te la encuentra y te la trae, ejemplo del compañero AHTONIO

 
Citar:
fecdsd = Format(vbxdesde.Value, "yyyy-mm-dd") 'Para interpretar por Sqlite3
  fechta = Format(vbxhasta.Value, "yyyy-mm-dd") 'en el formato que almacena fecha
  'No utilizamos substitucion porque no funciona. Insertamos string con el formato
  'YYYY-MM-DD que es como guarda los datos en la tabla.
  strsql = "SELECT * FROM vselped "
  strsql &= " WHERE strftime('%Y-%m-%d', fecped) BETWEEN '" & fecdsd & "' AND '" & fechta & "'"
  strsql &= " ORDER BY fecped"
  rstped = db.Current.Exec(strsql)

 
Pero sucede algo al traer la fecha en la tabla hay que hacer un Format porque las Gridview las muestra muy enredadas entonces vi el ejemplo del compañero DAVID que es:

Citar:
DO WHILE hResult.Available
  Clave = hResult["idregistro"]
 contenidos.add(Clave, Clave)
 contenidos[Clave][0] = hResult["idregistro"]
 contenidos[Clave][1] = hResult["dni"]
 contenidos[Clave][2] = hResult["nombre"]
 contenidos[Clave][3] = Format(hResult["fecha"], "dd/mm/yyyy")
 contenidos[Clave][4] = hResult["hora"]
 contenidos[Clave][5] = hResult["despuescomer"]
 contenidos[Clave][6] = hResult["glucosa"]
 contenidos[Clave][7] = hResult["sistorica"]
 contenidos[Clave][8] = hResult["distorica"]
 contenidos[Clave][9] = hResult["pulsa"]
 
  hResult.MoveNext
 LOOP
'cerramos la conexion de la base de datos
 CerrarBase()


Bien terminando la habladuría tan aburrida hice el procedimiento del compañero AHTONIO y me lanzaba un error, me decía que el comando strftime no funcionaba entonces dije voy a colocar algo parecido al date_format del comapñero GATOVIEJO y todo me quedo asi y me funciono perfecto:

Public Sub Button_buscar_consulta2_Click()
Dim fila As Integer
Dim fecha_inicial As String
Dim fecha_final As String
Dim strsql As String
Dim rstped As String
conexion.hresul = conexion.hconn.Exec("Select *from delitos")
 If Not (conexion.hresul.Available) Then
   Message.Error("NO HAY REGISTROS EN LA BASE DE DATOS")
 Else
' If DateBox_fecha_delito.Value = "" Or TextBox_codigo_delito_expediente2.Text = "" Then
' Message.Info("POR FAVOR LLENE LOS CAMPOS DE FECHAS PARA REALIZAR LA CONSULTA")
' Else
fecha_inicial = Format(DateBox_fecha_delito.Value, "yyyy-mm-dd")----Variables para voltear las fechas y asi poder hacer las consultas a mysql
fecha_final = Format(DateBox_fecha_delito2.Value, "yyyy-mm-dd")

If ComboBox_buscar_por_delitos2.Text = "FECHA" Then
 strsql &= ("Select *from delitos")
strsql &= " WHERE date_format(fecha_delito, '%Y-%m-%d') BETWEEN '" & fecha_inicial & "' AND '" & fecha_final & "'"--(El tenia :strftime('%Y-%m-%d',fecha_delito), cambie a: date_format(fecha_delito, '%Y-%m-%d') y funciono!
 strsql &= " ORDER BY fecha_delito"
conexion.hresul = db.Current.Exec(strsql)
   fila = 0
   Do While conexion.hresul.Available
  Lista2.Rows.Insert(fila)
 Lista2[fila, 0].Text = conexion.hresul["codigo_delito"]
  Lista2[fila, 1].Text = conexion.hresul["nro_expediente_delito"]
  Lista2[fila, 2].Text = conexion.hresul["delito"]  
  Lista2[fila, 3].Text = Format(conexion.hresul["fecha_delito"], "dd/mm/yyyy") ----Aquí me trae la fecha desordenada pero con el format me la ordena de nuevo en el griview!, este procedimiento sirve también para los reportes en pdf
  Lista2[fila, 4].Text = conexion.hresul["hora_delito"]  
  Lista2[fila, 5].Text = conexion.hresul["lugar_direccion_delito"]
  Lista2[fila, 6].Text = conexion.hresul["barrio_urbanizacion_delito"]
  Lista2[fila, 7].Text = conexion.hresul["parroquia_delito"]
  Lista2[fila, 8].Text = conexion.hresul["municipio_delito"]
  Lista2[fila, 9].Text = conexion.hresul["estado_municipio"]
  Lista2[fila, 10].Text = conexion.hresul["armas_involucradas_delito"]
  Lista2[fila, 11].Text = conexion.hresul["testigos_nombres_delito"]
  Lista2[fila, 12].Text = conexion.hresul["modus_operandi_delito"]
  Lista2[fila, 13].Text = conexion.hresul["nombre_presunto_imputado_infractor_delito"]
  Lista2[fila, 14].Text = conexion.hresul["apellido_presunto_imputado_infractor_delito"]
  Lista2[fila, 15].Text = conexion.hresul["lugar_ubicacion_imputado_delito"]
conexion.hresul.MoveNext()
 fila = fila + 1
 Loop
Lista.Refresh
Button_refrescar2.Enabled = True
Button_buscar_consulta2.Enabled = False
Button_reporte_tabla2.Enabled = True
 Endif


Espero que a muchos que estén perdidos les sirva esta explicación tan aburrida, bueno un abrazo.
 



 
jousseph - Ver perfil del usuarioEnviar mensaje privadoVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Busqueda Filtrada 
 
Aunque no tiene nada que ver con el tema, observo que sigues sin usar la función _Data del gridview... eso te alarga y complica el código pero, bueno, si a tí te vale...
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Busqueda Filtrada 
 
Y sin usar sustituciones en el comando Exec, y sin usar variables de tipo date en lugar de string... en fin, me rindo!

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Busqueda En Sqlite3 Guizans Bases de Datos 7 Martes, 11 Septiembre 2012, 21:00 Ver último mensaje
Guizans
No hay nuevos mensajes Busqueda Por Autor En La Granja!!! v3ctor General 2 Viernes, 07 Agosto 2015, 00:43 Ver último mensaje
v3ctor
No hay nuevos mensajes Problema Con Indice De Busqueda Mysql desoljor Aplicaciones/Fragmentos de Código 4 Lunes, 11 Enero 2016, 20:16 Ver último mensaje
desoljor
No hay nuevos mensajes Busqueda En Bases De Datos Mediante Yaz Y ... tincho Mundo Linux 5 Viernes, 12 Octobre 2018, 00:34 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 2 de 2
Ir a la página Anterior  1, 2

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron