zoukankan      html  css  js  c++  java
  • MySQL取两列的较小值或者较大值

      今偶遇这样一场景,两列都是日期时间类型,需要通过判断这两个日期的大小来取值。为了更好地说明这个流程,我们就假设去两列日期时间中较大者。那如何通过一条SQL语句搞定呢?此时,就需要借助IF-ELSE的思路了,请看示例代码:

      (1)方式一

    SELECT if(col_date_1 > col_date_2, col_date_1, col_date_2) as max_time
    FROM table_name
    WHERE some_col = 'some_value'
    

      若是要从三个日期时间中挑选出最大时间值,那又如何处理呢?此时,可以借助IF的嵌套,请看示例代码:

    SELECT if(col_date_1 > col_date_2, if(col_date_1 > col_date_3, col_date_1, col_date_3), if(col_date_2 > col_date_3, col_date_2, col_date_3) as max_time
    FROM table_name
    WHERE some_col = 'some_value'

      (2)方式二

    SELECT case when col_date_1 > col_date_2 then col_date_1 else col_date_2 end as max_time
    FROM table_name
    WHERE some_col = 'some_value'

      通过上述语句就可以完成想要的结果了,若还有其它简洁方式,可以共享一下,谢谢。

      若想要当前时间加一年,那么可以通过DATE_ADD函数来处理,例如DATE_ADD(NOW(), interval 1 year)。

  • 相关阅读:
    Linux下设置svn开机自启动
    LNMP 如何安装mongodb ----lnmp一键安装包之后
    MySQL表类型MyISAM/InnoDB的区别(解决事务不回滚的问题)
    PHP处理MySQL事务代码
    php redis 秒杀demo
    PHP5.6版本安装redis扩展
    Jzoj5662 尺树寸泓
    Jzoj3351 神牛养成计划2
    Jzoj5622 table
    Jzoj5608 Subset
  • 原文地址:https://www.cnblogs.com/bien94/p/12897899.html
Copyright © 2011-2022 走看看