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)。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM