我想将数据插入/更新到具有当前时间的表中,但我希望秒数为0,例如,'2014-06-27 23:36: 00 '。我如何实现这一目标?
我认为MAKETIME()可能会以某种方式参与,但我真的不知道如何。
遗憾的是,{p>CURDATE() + INTERVAL HOUR() HOUR + INTERVAL MINUTE() MINUTE
不起作用,这并不奇怪。
修改:最终解决方案 - DATE_FORMAT(CURTIME(), '%Y-%m-%d %H:%i:00')
。
答案 0 :(得分:2)
你的想法应该与函数的参数一起使用:
CURDATE() + INTERVAL HOUR(now()) HOUR + INTERVAL MINUTE(now()) MINUTE
答案 1 :(得分:2)
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 |
+---------------------+
答案 2 :(得分:1)
我知道已经有了一个可以接受的答案,我现在聊得有点晚了,但只要为别人提供2美分,便可能会有所帮助。这就是我用来获得0秒时间戳的方法。随时指出我的逻辑中的任何缺陷。 =)
select CURRENT_TIMESTAMP - interval second(CURRENT_TIMESTAMP) second
简单地获取时间戳并从中减去秒。这也适用于表中的datetime或timestamp列。因此,如果您想选择一个时长为0秒的时间戳列,请使用以下方法:
select timestamp_col - interval second(timestamp_col) second from table