Мне нужно получить 24-часовое время строки, но по какой-то причине я могу получить только 12-часовой, используя Mysql.
SELECT STR_TO_DATE('3/13/2018 9:28:07 PM', '%m/%d/%Y %T');
+-----------------------------------------------------+
| STR_TO_DATE('3/13/2018 9:28:07 PM', '%m/%d/%Y %T') |
+-----------------------------------------------------+
| 2018-03-13 09:28:07 |
+-----------------------------------------------------+
Я пробовал разные методы и думал, что он работает правильно, что так и было до полудня ....
Я пытаюсь использовать его, чтобы ограничить возвращаемые результаты только тем, что изменилось с момента последнего выполнения запроса.
2 ответа
% T - это время в 24-часовом формате, поэтому STR_TO_DATE игнорирует часть вашего времени PM / AM. Вам нужно использовать% r. См. руководство подробности.
Вам нужно преобразовать его в datetime с часовым поясом, а затем использовать формат даты% T.
Выберите DATE_FORMAT (STR_TO_DATE ('13.03.2018 9:28:07 PM', '% m /% d /% Y% r'), '% T')
21:28:07
Похожие вопросы
Новые вопросы
mysql
MySQL - это бесплатная система управления реляционными базами данных с открытым исходным кодом (RDBMS), использующая язык структурированных запросов (SQL). НЕ ИСПОЛЬЗУЙТЕ этот тег для других БД, таких как SQL Server, SQLite и т. Д. Это разные БД, которые все используют свои собственные диалекты SQL для управления данными.