Убрать секунды на 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'
    ),
Другие вопросы по тегам