2015-12-16 54 views
0

我是MySQL新手,我不知道如何解决此问题删除MySQL上的秒数

我有一个包含日期时间类型的表。颜色的格式为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 

有谁知道如何让这样的查询?

+3

[将MySQL中的DATETIME值舍入到最接近的分钟](http://stackoverflow.com/questions/25747539/rounding-a-datetime-value-in-mysql-to-nearest-minute) –

回答

0

使用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) 

Demo

0

请问像这样的工作?

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' 
    ), 
0

我可能会做这样的事情(未经测试):

SELECT CASE SECOND(@yourDate)> 30 THEN DATE_ADD(@yourDate间隔SECOND(@yourDate)秒) ELSE @yourDate ;

您不妨阅读mysql手册的date and time functions部分。

0

UPDATE SET TABLE_NAME
date_column =(CASE WHEN SECOND(date_column)> = 30 THEN DATE_FORMAT(date_column, '%Y-%间 - %d%H:%I:00')+ INTERVAL 1分钟
ELSE DATE_FORMAT(date_column,'%Y-%m-%d%H:%i:00')
END);