#python #mysql #mysql-python #raspberry-pi-zero
#питон #mysql #mysql-python #малина-пи-зеро
Вопрос:
На самом деле я делаю проект будильника, используя pi zero. Итак, теперь проблема, когда код извлекает данные из MySQL, которые являются временем тревоги, он переходит в состояние if для сравнения с текущим временем. На самом деле это не работает, потому что выборка python не занимает много времени. Пример нулевого фронта был исключен… Если (6:45:00 == 06:45:00) ложь
Но после 10:00 все идет отлично.
mycursor.execute("SELECT * FROM alarm WHERE status = 1") myresult = mycursor.fetchall() for x in myresult: days = x[3].split(",") days = filter(None, days) for i in days: if(i == day): a = str(x[2]) print(type(a)) #alarm = a.strftime('%H:%M:%S') print("Today = " str(x[0])) print(a) print(str(now)) if(a==now): print("Alarm Rings") GPIO.setup(20, GPIO.OUT) GPIO.output(20, GPIO.LOW) GPIO.setup(21, GPIO.OUT) GPIO.output(21, GPIO.LOW)
Комментарии:
1. Непонятно, что
now
это такое.2. Почему бы вам просто не сохранить время в базе данных с нулевым заполнением?
3. Немного больше объяснений, пожалуйста
4. Вместо этого поместите
06:45:00
в базу6:45:00
данных .5. Внутри базы данных 06:45:00, но только на python 6:45:00… Я также получаю данные о PHP… PHP так не делает
Ответ №1:
Удалите начальный ноль из now
перед сравнением:
if now[0] == '0': now = now[1:] if a == now: # rest of the code
Комментарии:
1. Неужели это испортится, когда время будет выше 10:00:00? Я думаю, что нет
2. разве вы не видите
if
заявление? Он удаляет только первый символ, когда он0
есть .