資料庫時間相減 mysql時間日期相加相減實現

2021-10-16 14:25:11 字數 1738 閱讀 7013

分享篇mysql中日期的一些操作,就是我們常常會用到的mysql時間日期的相加或者相減的了,這個mysql也自己帶了函式,有需要的朋友可以參考一下。

最簡單的方法

select to_days(str_to_date('12/1/2001 12:00:00 am','%m/%d/%y')) -

to_days(str_to_date('11/28/2001 12:00:00 am','%m/%d/%y'))  as a from table1

得出天數

select to_days('1999-02-01)-to_days('1999-01-01')

下面是mysql參考手冊上的說明

mysql 為日期增加乙個時間間隔:date_add()

set @dt = now();

select date_add(@dt, interval 1 day); -- add 1 day

select date_add(@dt, interval 1 hour); -- add 1 hour

select date_add(@dt, interval 1 minute); -- ...

select date_add(@dt, interval 1 second);

select date_add(@dt, interval 1 microsecond);

select date_add(@dt, interval 1 week);

select date_add(@dt, interval 1 month);

select date_add(@dt, interval 1 quarter);

select date_add(@dt, interval 1 year);

select date_add(@dt, interval -1 day); -- sub 1 day

mysql adddate(), addtime()函式,可以用 date_add() 來替代。下面是 date_add() 實現 addtime() 功能示例:

mysql> set @dt = '2008-08-09 12:12:33';

mysql>

mysql> select date_add(@dt, interval '01:15:30' hour_second);

| date_add(@dt, interval '01:15:30' hour_second) |

| 2008-08-09 13:28:03 |

mysql> select date_add(@dt, interval '1 01:15:30' day_second);

| date_add(@dt, interval '1 01:15:30' day_second) |

| 2008-08-10 13:28:03 |

date_add() 函式,分別為 @dt 增加了「1小時 15分 30秒」 和 「1天 1小時 15分 30秒」。建議:總是使用 date_add() 日期時間函式來替代 adddate(), addtime()。

2. mysql 為日期減去乙個時間間隔:date_sub()

mysql> select date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second);

| date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_second) |

| 1997-12-30 22:58:59 |

mysql 時間 mysql時間日期函式

now current timestamp 當前日期時間 current date 當前日期 current time 當前時間 date yyyy mm dd hh ii ss 獲取日期部分 time yyyy mm dd hh ii ss 獲取時間部分 date format yyyy mm d...

informix 資料庫 時間 日期簡單操作

today 當前日期 date sysdate current 當前時間 datetime select sysdate from test table 系統當前時間 select current from test table 系統當前時間 select today 1 from test tab...

mySql時間相減的問題

剛寫了個功能,其中的一部分包括統計符合條件訂單的arrive time和receiving time的差值 想都沒多想 就直接 arrive time receiving time,結果超級離譜。笑哭 如下 看一下兩個時間差值 其實也就12分鐘,這裡的5255也不知道是什麼數值,秒也不是,毫秒也不對...