Время Python / MySQL

0

У меня есть база данных в MySQL, которая хранит время. Я использовал тип данных Time для хранения 4 раза. У меня есть приложение kivy, которое отображает время как строку на кнопках, чтобы пользователь мог выбрать одно из раз. Я пытаюсь преобразовать время в 12-часовое время AM/PM вместо стандартного 24-часового формата времени (военного времени), который по умолчанию использует тип данных MySQL TIME. Я могу получить время от MySQL до кнопок, но не в том формате, который я ищу. Я попытался использовать метод SQL TIME_FORMAT() с pymysql для перевода кода в формат, который я ищу, но это не сработало. Например, я хочу, чтобы мое время напоминало (22:40:00) вместо (22:40:00).

Как мне это сделать? Вот пример моего кода Python ниже, где я собираю время из MySQL и добавляю их к кнопкам:

def display_times(self):

    cur.execute("""SELECT * FROM appointment_times""")

    times = cur.fetchall()

    time_1 = (times[0])
    time_2 = (times[1])
    time_3 = (times[2])
    time_4 = (times[3])

    form_time_1 = time_1['times']
    form_time_2 = time_2['times']
    form_time_3 = time_3['times']
    form_time_4 = time_4['times']

    self.ids.time_1.text += str(form_time_1)
    self.ids.time_2.text += str(form_time_2)
    self.ids.time_3.text += str(form_time_3)
    self.ids.time_4.text += str(form_time_4)
Теги:
kivy

1 ответ

1
Лучший ответ

Чтобы получить время в формате hh:mm:ss AM/PM, вы можете использовать date_format(times, '%r') в вашем запросе select (предполагая, что это times является столбцом времени). Функция date_format используемая в формате %r, преобразует время в желаемый формат (см. Также https://dev.mysql.com/doc/refman/5.7/en/date-and-time-functions.html#function_date-format).

Например, выполните следующий код:

cursor = conn.cursor()
cursor.execute("""select date_format(time_col, '%r') from times""")
times = cursor.fetchall()

time_1 = (times[0])
time_2 = (times[1])
time_3 = (times[2])
time_4 = (times[3])

form_time_1 = time_1[0]
form_time_2 = time_2[0]
form_time_3 = time_3[0]
form_time_4 = time_4[0]

print str(form_time_1)
print str(form_time_2)
print str(form_time_3)
print str(form_time_4)

печатает следующее:

11:23:09 AM
07:07:25 PM
03:14:10 AM
08:02:43 PM

Мой times таблица выглядит следующим образом:

+----+----------+
| id | time_col |
+----+----------+
|  1 | 11:23:09 |
|  2 | 19:07:25 |
|  3 | 03:14:10 |
|  4 | 20:02:43 |
+----+----------+

Ещё вопросы

Сообщество Overcoder
Наверх
Меню