Удалить секунды в 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

Кто-нибудь знает, как сделать такой запрос?


person Barata    schedule 16.12.2015    source источник


Ответы (4)


используйте 1_

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) 

Демо

person Abhishek Sharma    schedule 16.12.2015

Что-то вроде этого работает?

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'
    ),
person Dezza    schedule 16.12.2015

Я бы, вероятно, сделал что-то вроде этого (непроверенный):

SELECT CASE SECOND(@yourDate) > 30 THEN DATE_ADD(@yourDate INTERVAL SECOND(@yourDate) SECOND) ELSE @yourDate;

Вы можете прочитать функции даты и времени часть руководства по MySQL.

person Kris    schedule 16.12.2015

UPDATE table_name SET
date_column=(CASE WHEN SECOND(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')
END);

person Md. Obaidul Haque Sarker    schedule 16.12.2015