Buen dia amigos!!!! Quiero hacer un filtrado de fechas en python lo que hice es tomar la fecha con la ayuda de datatime como fecha de estudio (segun ese dia se paga el estudio) y se guarda en la base de datos con ese formato (tipo datetime) la idea es hacer un corte de las ventas de cada mes, y lo que hice fue usar la sentencia:
"SELECT * FROM paciente WHERE fecha_de_estudio BETWEEN 09, Jul, 2019 AND 23, Jul, 2019"
En este caso si se hace el filtrado y se obtiene el rango de fechas esperado, entonces coloqué un Entry de Tkinter para hacerlo ya con variables y no logro obtener el resultado esperado.
Label(self.tab2, text = 'Fecha de inicio: ', bg = 'gray').grid(row = 1, column = 0, sticky = W + E)
self.fecha_inicial = Entry(self.tab2, width = 10)
self.fecha_inicial.focus()
self.fecha_inicial.grid(row = 1, column = 1, pady = 10, sticky = W)
Label(self.tab2, text = 'Fecha final: ', bg = 'gray',).grid(row = 2, column = 0, sticky = W + E)
self.fecha_final = Entry(self.tab2, width = 10)
self.fecha_final.grid(row = 2, column = 1, pady = 10, sticky = W )
Button(self.tab2, text = 'Seleccionar mes', command = self.get_mes).grid(row = 2, column = 2, pady = 10, padx = 10, sticky = W + E )
def run_query(self, query, parameters = ()):
with sqlite3.connect(self.db_lab) as conn:
cursor = conn.cursor()
result = cursor.execute(query, parameters)
conn.commit()
return result
# Consulta de datos
query = ("SELECT * FROM paciente WHERE fecha_de_estudio BETWEEN ? AND ?", self.fecha_i.date(), self.fecha_f.date())
db_rows = self.run_query(query)
def get_mes(self):
self.fecha_i = datetime.strptime(self.fecha_inicial.get(), '%d, %b, %Y')
self.fecha_f = datetime.strptime(self.fecha_final.get(), '%d, %b, %Y')
records = self.tree2.get_children()
for element in records:
self.tree2.delete(element)
query = ("SELECT * FROM paciente WHERE fecha_de_estudio BETWEEN ? AND ?", self.fecha_i.date(), self.fecha_f.date())
db_rows = self.run_query(query)
for row in db_rows:
self.tree2.insert('', 0, text = row[0], values = (row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19]))
Me pueden apoyar en este problema que tengo por favor, no logro encontrar mi error y una pregunta adicional a que se refiere este error:
ValueError: operation parameter must be str (me aparecia cuando modificaba la busqueda)
muchas gracias!!!!
"SELECT * FROM paciente WHERE fecha_de_estudio BETWEEN 09, Jul, 2019 AND 23, Jul, 2019"
En este caso si se hace el filtrado y se obtiene el rango de fechas esperado, entonces coloqué un Entry de Tkinter para hacerlo ya con variables y no logro obtener el resultado esperado.
Label(self.tab2, text = 'Fecha de inicio: ', bg = 'gray').grid(row = 1, column = 0, sticky = W + E)
self.fecha_inicial = Entry(self.tab2, width = 10)
self.fecha_inicial.focus()
self.fecha_inicial.grid(row = 1, column = 1, pady = 10, sticky = W)
Label(self.tab2, text = 'Fecha final: ', bg = 'gray',).grid(row = 2, column = 0, sticky = W + E)
self.fecha_final = Entry(self.tab2, width = 10)
self.fecha_final.grid(row = 2, column = 1, pady = 10, sticky = W )
Button(self.tab2, text = 'Seleccionar mes', command = self.get_mes).grid(row = 2, column = 2, pady = 10, padx = 10, sticky = W + E )
def run_query(self, query, parameters = ()):
with sqlite3.connect(self.db_lab) as conn:
cursor = conn.cursor()
result = cursor.execute(query, parameters)
conn.commit()
return result
# Consulta de datos
query = ("SELECT * FROM paciente WHERE fecha_de_estudio BETWEEN ? AND ?", self.fecha_i.date(), self.fecha_f.date())
db_rows = self.run_query(query)
def get_mes(self):
self.fecha_i = datetime.strptime(self.fecha_inicial.get(), '%d, %b, %Y')
self.fecha_f = datetime.strptime(self.fecha_final.get(), '%d, %b, %Y')
records = self.tree2.get_children()
for element in records:
self.tree2.delete(element)
query = ("SELECT * FROM paciente WHERE fecha_de_estudio BETWEEN ? AND ?", self.fecha_i.date(), self.fecha_f.date())
db_rows = self.run_query(query)
for row in db_rows:
self.tree2.insert('', 0, text = row[0], values = (row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19]))
Me pueden apoyar en este problema que tengo por favor, no logro encontrar mi error y una pregunta adicional a que se refiere este error:
ValueError: operation parameter must be str (me aparecia cuando modificaba la busqueda)
muchas gracias!!!!