текущее время mysql с 0 секундами

#mysql

#mysql

Вопрос:

Я хочу вставить / обновить данные в таблицу с текущим временем, но я хочу, чтобы секунды были равны 0, например, ‘2014-06-27 23:36:00‘. Как мне этого добиться?

Я думаю, что MAKETIME() может быть каким-то образом задействован, но я действительно понятия не имею, как.

CURDATE() INTERVAL HOUR() HOUR INTERVAL MINUTE() MINUTE к сожалению, не работает, что неудивительно.

Редактировать: окончательное решение — DATE_FORMAT(CURTIME(), '%Y-%m-%d %H:%i:00') .

Ответ №1:

 mysql> select date_format(current_timestamp(), '%Y-%m-%d %H:%i:00') as ts_zero_seconds;
 --------------------- 
| ts_zero_seconds     |
 --------------------- 
| 2014-06-27 02:06:00 |
 --------------------- 
 

Комментарии:

1. Это должно быть %Y-%m-%d %H:%i:00 . Я не работаю по 12 часов.

Ответ №2:

Ваша идея должна работать с аргументами функций:

 CURDATE()   INTERVAL HOUR(now()) HOUR   INTERVAL MINUTE(now()) MINUTE 
 

Комментарии:

1. Ну, как бы это ни было смешно, это работает, спасибо. Я, вероятно, воспользуюсь решением @Bill Karwin, хотя оно намного короче, если я заменю CURRENT_TIMESTAMP() на CURTIME() , оно работает, и мне это нужно очень редко.

2. В качестве примечания решение Билла возвращает строку. Это решение возвращает дату и время, которые, казалось, были тем, о чем спрашивал вопрос.

3. Это для вставки в базу данных в столбец datetime. Он принимает строки.

Ответ №3:

Я знаю, что уже есть принятый ответ, и я немного опаздываю с разговором, но просто вкладываю свои 2 цента для всех, кому это может помочь. Это то, что я использую, чтобы получить временную метку с 0 секундами. Не стесняйтесь указывать на любые недостатки в моей логике. =)

select CURRENT_TIMESTAMP - interval second(CURRENT_TIMESTAMP) second

Просто возьмите временную метку и вычтите из нее секунды. Это также работает для столбцов datetime или timestamp в таблицах. Итак, если вы хотите выбрать столбец временной метки с 0 секундами, используйте это:

select timestamp_col - interval second(timestamp_col) second from table