1. 程式人生 > >mysql DATEDIFF() 、IFNULL(p1,p2)函式

mysql DATEDIFF() 、IFNULL(p1,p2)函式

1.定義和用法
MySQL DATEDIFF() 函式返回兩個日期之間的天數。

語法
DATEDIFF(date1,date2)
date1 和 date2 引數是合法的日期或日期/時間表達式。

註釋:只有值的日期部分參與計算。
例項
例子 1
使用如下 SELECT 語句:

SELECT DATEDIFF('2018-12-30','2018-12-29') AS DiffDate
結果:

DiffDate 
1

例子 2
使用如下 SELECT 語句:

SELECT DATEDIFF('2018-12-29','2018-12-30') AS DiffDate
結果:

DiffDate 
-1

以上就是MySQL DATEDIFF()語法介紹。、

二:IFNULL(p1,p2)函式:

Mybatis中IFNULL(p1,p2)函式怎麼用? 
首先看沒有IFNULL的查詢:

2.1原始碼:

select md.valueofdouble, md.periodcode
from meas_data md
WHERE objectcode="YQ"
AND datatime="2017-5-25 00:00:00"
AND measurementcode="PI_DRFDL"
  • 1
  • 2
  • 3
  • 4
  • 5

2.2.截圖:

這裡寫圖片描述

3.1原始碼:

select md.valueofdouble, IFNULL(md.periodcode,0
) from meas_data md WHERE objectcode="YQ" AND datatime="2017-5-25 00:00:00" AND measurementcode="PI_DRFDL"
  • 1
  • 2
  • 3
  • 4
  • 5

3.2截圖:

這裡寫圖片描述

4.總結:

1、IFNULL(P1,P2)如果如果P1不為空,則返回值為P1;P1為NULL,則返回為P2;P2有點類似替補球員; 
2、注意,IFNULL只是針對區域性欄位的替換;如果整個結果查出來都是空,則不能使用IFNULL(P1,P2)

4.1原始碼:

select md.valueofdouble, md.periodcode
from
meas_data md WHERE objectcode="YQ" AND datatime="2017-5-25 00:00:01" AND measurementcode="PI_DRFDL"
  • 1
  • 2
  • 3
  • 4
  • 5

4.2截圖:

這裡寫圖片描述


4.3原始碼:

select md.valueofdouble, IFNULL(md.periodcode,0)
from meas_data md
WHERE objectcode="YQ"
AND datatime="2017-5-25 00:00:01"
AND measurementcode="PI_DRFDL"
  • 1
  • 2
  • 3
  • 4
  • 5

4.4截圖:

這裡寫圖片描述