mysql日期加减

1. MySQL 为日期增加一个时间间隔:date_add()

set @dt = now();

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

select date_add(@dt, interval 1 hour); -加1小时

select date_add(@dt, interval 1 minute); - 加1分钟

select date_add(@dt, interval 1 second); -加1秒

select date_add(@dt, interval 1 microsecond);-加1毫秒

select date_add(@dt, interval 1 week);-加1周

select date_add(@dt, interval 1 month);-加1月

select date_add(@dt, interval 1 quarter);-加1季

select date_add(@dt, interval 1 year);-加1年

MySQL adddate(), addtime()函数,可以用date_add() 来替代。下面是date_add() 实现addtime() 功能示例:

mysql> set @dt = ‘2009-09-09 12:12:33‘;

mysql>

mysql> select date_add(@dt, interval ‘01:15:30‘ hour_second);-加上1小时15分30秒

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

结果:2009-09-09 13:28:03

mysql> select date_add(@dt, interval ‘1 01:15:30‘ day_second);-加1天1小时15分30秒

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秒”

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)

www.2cto.com

MySQL date_sub() 日期时间函数 和date_add() 用法一致,不再赘述。另外,MySQL 中还有两个函数subdate(), subtime(),建议,用date_sub() 来替代。

3. MySQL 另类日期函数:period_add(P,N), period_diff(P1,P2)

函数参数“P” 的格式为“YYYYMM” 或者 “YYMM”,第二个参数“N” 表示增加或减去N month(月)。

MySQL period_add(P,N):日期加/减去N月。

mysql> select period_add(200808,2), period_add(20080808,-2)

| period_add(200808,2) | period_add(20080808,-2) |

结果| 200810 | 20080806 |

MySQL period_diff(P1,P2):日期P1-P2,返回N 个月。

mysql> select period_diff(200808, 200801);

period_diff(200808, 200801)

结果:7

MySQL 中,这两个日期函数,一般情况下很少用到。

4. MySQL 日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)

MySQL datediff(date1,date2):两个日期相减date1 date2,返回天数。网站制作学习网整理

select datediff(‘2008-08-08‘, ‘2008-08-01‘); 7

select datediff(‘2008-08-01‘, ‘2008-08-08‘); -7

MySQL timediff(time1,time2):两个日期相减time1 time2,返回time 差值。

select timediff(‘2008-08-08 08:08:08‘, ‘2008-08-08 00:00:00‘);- 08:08:08

select timediff(‘08:08:08‘, ‘00:00:00‘); - 08:08:08

注意:timediff(time1,time2) 函数的两个参数类型必须相同。

来自:http://www.2cto.com/database/201110/107788.html

注:这次主要用到了4。如果只写date1 - date2,返回的是一个长整形,如:2014-10-29 - 2014-10-31 = -200000

也不是秒数(2天=172800s),具体什么含义,请各位大神给予指点

时间: 2024-08-06 17:29:09

mysql日期加减的相关文章

mysql日期加减<转>

1. MySQL 为日期增加一个时间间隔:date_add() set @dt = now(); select date_add(@dt, interval 1 day); - 加1天 select date_add(@dt, interval 1 hour); -加1小时 select date_add(@dt, interval 1 minute); - 加1分钟 select date_add(@dt, interval 1 second); -加1秒 select date_add(@d

mysql日期加减运算

MySQL 日期类型MySQL 日期类型:日期格式.所占存储空间.日期范围 比较. 日期类型        存储空间       日期格式                 日期范围 ------------  ---------   --------------------- ----------------------------------------- datetime       8 bytes   YYYY-MM-DD HH:MM:SS   1000-01-01 00:00:00 ~

mysql 日期加减天数

MySQL 为日期增加一个时间间隔:date_add() now()       //now函数为获取当前时间 select date_add(now(), interval 1 day); - 加1天 select date_add(now(), interval 1 hour); -加1小时 select date_add(now(), interval 1 minute); - 加1分钟 select date_add(now(), interval 1 second); -加1秒 sel

转:JS日期加减,日期运算

原文 出处http://hi.baidu.com/tonlywang/item/685fba8933a2a756e73d1950 一.日期减去天数等于第二个日期 function cc(dd,dadd) ...{ //可以加上错误处理 var a = new Date(dd) a = a.valueOf() a = a - dadd * 24 * 60 * 60 * 1000 a = new Date(a) alert(a.getFullYear() + "年" + (a.getMon

php日期处理汇总,指定日期加减多少天,循环两个指定日期之间的日期

一. (1)指定日期加减多少天 (2)循环两个指定日期之间的日期 例: $start_time = '2017-07-01';$end_time = '2017-07-10'; 获取时间差 $diff= strtotime($end_time)-strtotime($start_time);$num = $diff/(24*60*60)+1; for ($i=0; $i < $num; $i++) { $selectTime = date("Y-m-d",strtotime(&q

java 常用的日期加减和日期格式化工具类

平时我们遇到日期的加减,感觉是相当麻烦的,以下是常用的日志加减的方法,包括日的加减.月的加减等,也包括了一些常用的日期格式化,这样在我们以后碰到日期加减的时候会省去很多麻烦,欢迎大神指正和吐槽: 1 package bp.util; 2 3 import java.text.ParseException; 4 import java.text.SimpleDateFormat; 5 import java.util.Calendar; 6 import java.util.Date; 7 8 p

shell 日期加减

shell 日期加减运算 比如今日是2012-04-22 $ date -d "+1 day" +%Y-%m-%d 2012-04-23 $ date -d "-1 day" +%Y-%m-%d 2012-04-21 $ date -d "2012-04-10 -1 day " +%Y-%m-%d 2012-04-09 $ date -d "2012-04-10 +1 day " +%Y-%m-%d 2012-04-11 $

获取周 星期 的第一天 最后一天 或者 月的 日期(字符串转日期,日期转字符串,日期加减)

获取周的第一天,最后一天 System.out.println(getStartEndDate("2016-05-01", 1)); 获取星期的第一天和最后一天 System.out.println(getStartEndDate("2016-05-01", 0)); public static String getStartEndDate(String aDay, int type) { SimpleDateFormat df = new SimpleDateFo

JAVA Calendar 日期加减

Date starttime=new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(starttime); cal.set(Calendar.DATE, cal.get(Calendar.DATE) - 2); starttime= cal.getTime(); JAVA Calendar 日期加减