Убрать секунды на MySQL
Я новичок в MySQL, и я не знаю, как решить эту проблему
У меня есть таблица, которая содержит тип datetime. Формат колонны yyyy-mm-dd hh:mm:ss
, как это 2015-12-02 20:21:54
, Я хочу удалить второй.
Если second <= 30
затем удалите второй
2015-12-02 20:00:15 ---> 2015-12-02 20:00
Если second > 30
затем минута + 1
2015-12-02 20:21:54 ---> 2015-12-02 20:22
Кто-нибудь знает, как сделать запрос, как это?
4 ответа
ОБНОВЛЕНИЕ table_name SET
date_column = (СЛУЧАЙ КОГДА ВТОРОЙ (date_column)>=30 THEN DATE_FORMAT(date_column, '%Y-%m-%d %H:%i:00')+ ИНТЕРВАЛ 1 МИНУТА
ELSE DATE_FORMAT(date_column, '%Y-%m-%d %H:%i:00')
КОНЕЦ);
Я бы, наверное, сделал что-то вроде этого (не проверено):
ВЫБЕРИТЕ СЛУЧАЙ ВТОРОЙ (@yourDate) > 30 THEN DATE_ADD(@yourDate ИНТЕРВАЛ ВТОРОЙ (@yourDate) ВТОРОЙ) ELSE @yourDate;
Вы можете прочитать функции даты и времени в руководстве по mysql.
Использование DATE_FORMAT
SELECT
if(DATE_FORMAT('2015-12-02 20:00:55','%s') <= 30,
DATE_FORMAT('2015-12-02 20:00','%Y-%m-%d %H:%i'),
DATE_FORMAT('2015-12-02 20:00','%Y-%m-%d %H:%i') + INTERVAL 1 MINUTE)
Работает ли что-то подобное?
SELECT
DATE_FORMAT(
DATE_ADD(
DATE_FORMAT(your_date, '%Y-%m-%d %H:%i:00'),
INTERVAL IF (SECOND(your_date) < 30, 0, 1) MINUTE
),
'%Y-%m-%d %H:%i'
),