Строка DateTime через MySQL DATE_FORMAT или DateTime.strftime - PullRequest
2 голосов
/ 24 июня 2019

У меня есть функция, которая использует строку даты и времени, возвращаемую из запроса к БД.Прямо сейчас запрос возвращает объект datetime.

То, что я ищу, это то, что было бы предпочтительным способом создания моей строки datetime.Я еще не делал профилирования производительности, просто искал предыдущий опыт от людей.

Ответы [ 2 ]

1 голос
/ 24 июня 2019

Это зависит.

Обычно база данных - это просто хранилище данных;это не механизм форматирования.Это подразумевает, что вы должны ожидать получения строк типа "2019-06-24 13:47:24" или чисел типа 1561409293, и вы будете иметь с ними дело оттуда.

Однако часто проще просто позвонить DATE_FORMAT() в вашем SELECT заявление.Это особенно удобно, когда SELECT может сгенерировать весь «отчет» без дополнительных манипуляций.

Другой способ решить ... Какой подход требует меньшего количества нажатий клавиш с вашей стороны?Или имеет наименьший шанс ошибок программирования?Или ...

Вы говорите "использует строку даты и времени, возвращаемую из запроса к БД" - но что она будет с этим делать?Если он будет манипулировать им более чем одним способом, то клиентский «объект» звучит как лучший подход.Если вы просто отобразите дату и время, тогда DATE_FORMAT() может быть лучше.

Нет заметных различий в производительности.

0 голосов
/ 24 июня 2019

Если у вас есть объект datetime, вы можете просто сохранить его в своем коде как объект datetime, извлекая из него всю необходимую вам информацию.Затем, когда вам действительно нужна настоящая строка, используйте strftime, чтобы отформатировать ее так, как вы хотите.

>>> from datetime import datetime
>>> t = datetime.now()
>>> t
datetime.datetime(2019, 6, 24, 14, 23, 45, 835379)
>>> print(t.month)
6
>>> print(t.second)
45
>>> as_string = t.strftime("%B %d, %Y")
>>> print(as_string)
June 24, 2019
>>> as_another_string = t.strftime("%Y-%h-%d %H:%m")
>>> print(as_another_string)
2019-Jun-24 14:06

На этой странице показаны виды кодов форматов, к которым вы можете обращаться, чтобы извлечь любую дату / время, которое вы хотите отобразить в вашей строке:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...