【问题标题】:Remove seconds on MySQL删除 MySQL 上的秒数
【发布时间】:2015-12-16 08:48:32
【问题描述】:

我是 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

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

【问题讨论】:

标签: mysql seconds


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这样的东西有用吗?

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

    【讨论】:

      【解决方案3】:

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

      选择案例第二个(@yourDate)> 30 然后 DATE_ADD(@yourDate 间隔秒(@yourDate)秒) 否则@yourDate;

      您可能希望阅读 mysql 手册的date and time functions 部分。

      【讨论】:

        【解决方案4】:

        更新表名设置
        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')
        结束);

        【讨论】:

          猜你喜欢
          • 2016-01-22
          • 1970-01-01
          • 2011-07-03
          • 1970-01-01
          • 2018-06-23
          • 2014-07-28
          • 2011-11-28
          • 2012-10-28
          • 2011-08-08
          相关资源
          最近更新 更多