下面这段代码连接了两个表并打印在一个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()
给出以下输出:
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 |
我只需要输出今天签入的那些行(在我的输出中是最后两行)。 我尝试用我的“join”行进行操作,例如,将其更改为:
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"
但在我的所有尝试中,我得到的都是空输出,而不是我所需要的:
Resident: Room: Last check-in:
那么,我如何正确地键入它,使光标只选择包括今天日期的行呢?
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"