Tengo el siguiente código que une dos tablas e imprime en una lista 2D
print("Resident:\tRoom:\t\tLast check-in:") print(' ') join = "SELECT users.name, users.room, attendance.clock_in FROM users JOIN attendance ON users.id = attendance.user_id" cursor.execute(join) output = cursor.fetchall() for x in range(len(output)): for y in range(len(output[x])): print(output[x][y], end = '\t | \t') print()dándome la siguiente salida:
Resident: Room: Last check-in: Name 1 | W235 | 2020-05-10 17:57:17 | Name 2 | E289 | 2020-05-10 17:58:08 | Name 1 | W235 | 2020-05-10 18:18:22 | Name 2 | E289 | 2020-05-10 18:18:36 | Name 1 | W235 | 2020-05-10 18:18:41 | Name 1 | W235 | 2020-05-16 16:01:38 | Name 2 | E289 | 2020-05-16 16:07:31 | Name 2 | E289 | 2020-05-16 17:13:50 | Name 2 | E289 | 2020-05-16 17:13:53 | Name 2 | E289 | 2020-05-16 17:13:58 | Name 1 | W235 | 2020-06-29 22:41:23 | Name 2 | E289 | 2020-07-15 16:27:13 | Name 1 | W235 | 2020-07-15 16:27:23 |Necesito que la salida sea solo aquellas filas que se registraron hoy (en mi salida son las dos últimas filas). Intenté manipular con mi línea "unirse", por ejemplo, cambiándola a:
join = "SELECT users.name, users.room, attendance.clock_in FROM users JOIN attendance ON users.id = attendance.user_id AND attendance.clock_in LIKE CURRENT_DATE"pero en todos mis intentos obtengo una salida vacía en lugar de lo que necesito:
Resident: Room: Last check-in:Entonces, ¿cómo lo escribo correctamente para que el cursor seleccione solo las filas que incluyen la fecha de hoy?
join = "SELECT users.name, users.room, attendance.clock_in FROM users JOIN attendance ON users.id = attendance.user_id WHERE attendance.clock_in >= CURDATE() AND attendance.clock_in < CURDATE() + INTERVAL 1 DAY"
join = "SELECT users.name, users.room, attendance.clock_in FROM users " \ "JOIN attendance ON users.id = attendance.user_id " \ "WHERE attendance.clock_in >= CURDATE() " \ "AND attendance.clock_in < CURDATE() + INTERVAL 1 DAY"