mysql时间日期相加相减实现

分享篇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
    原文地址: https://www.cnblogs.com/diony/p/3242369.html
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞