正确的解决方案是将秒数归零并保留数据类型:
SELECT `datetime` - INTERVAL EXTRACT(SECOND FROM `datetime`) SECOND
FROM `some table`
如果datetime列包含微秒,则使用以下变量:
SELECT `datetime` - INTERVAL EXTRACT(SECOND_MICROSECOND FROM `datetime`) SECOND_MICROSECOND
FROM `some table`
SQL Fiddle
理论上,它应该比使用日期格式函数的示例更快。