mysql 中自定义日期减日期函数
作者&投稿:钞林 (若有异议请与网页底部的电邮联系)
1、A1设置为文本格式 B1设置为日期格式2、B2输入公式 =IF(A1="是",TODAY(),"")
DATE_FORMAT(NOW(),'%Y年%m月%d日 %H时%i分%s秒')
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)
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) 函数的两个参数类型必须相同。
乌水双黄: mysql 两个日期如何相减 得到新的日期 首先 两个日期相减得到的是天数 ,怎么可能得到日期? 如果要得到新的日期,那么肯定是一个日期 加减一个天数 才能得到另一个日期啊. 这个是最基本的吧? 如果是后者 一个日期加 天数 得到新日期 给你个例子 select adddate(now(),-7) --这句的意思就是now()当前时间,减去7天 就是上个星期1下午3点46
东城区18748346197: sql date时间加减几天几小时 - ?
乌水双黄: DATEADD() 函数在日期中添加或减去指定的时间间隔.日:在当前日期上加两天 select DATEADD(day,2,'2014-12-30') 2015-01-01 select DATEADD(dd,2,'2014-12-30') 月:在当前日期上加两个月 select DATEADD(mm,2,'2014-12-30') 结果...
东城区18748346197: mysql 中日期的加减?
乌水双黄: mysql有2个函数可以做日期加法,adddate和date_add,没什么区别. select count(*) from table where time>=ADDDATE('2008-03-12', INTERVAL 1 DAY) select count(*) from table where time>=DATE_ADD('2008-03-12', INTERVAL 1 DAY)
东城区18748346197: 如何用Sql语句获取当前时间,并且在当前时间的基础上减去3天的时间 - ?
乌水双黄: 一、DateAdd()方法说明 SQL Server提供了日期函数DateAdd用于获得某日期指定间隔后的日期. 1. 定义和用法 DATEADD() 函数在日期中添加或减去指定的时间间隔. 2. 语法 DATEADD(datepart,number,date) date 参数是合法的日期表...
东城区18748346197: mysql 哪个函数可以通过今天的日期获得本周一得日期呀?
乌水双黄: 这个需要转换下思路,没有直接得到的函数,不过转换下就好了. DAYOFWEEK(date)返回日期date的星期索引(1=星期天,2=星期一, ……7=星期六).这些索引值对应于ODBC标准. 3e Y3r Y h0mysql> select DAYOFWEEK('1998-02-03')...
东城区18748346197: SQL 日期相减=天数 日期去掉星期天?
乌水双黄: 使用2113 networkdays 这个函数 不用5261 datedif 函数……4102 就能解决你的1653问题了……自己查查回 networkdays 这个函答数吧 NETWORKDAYS(start_date,end_date,holidays)
东城区18748346197: mysql怎么让当前时间减去datetime类型的时间 - ?
乌水双黄: 先用select取出来,计算完后再 update 进去dim day1 day1=day(取出来的时间)-30再把这个day1 update 进去
东城区18748346197: SQL里面两个日期相减 - ?
乌水双黄: DECLARE @dt1 AS datetime, @dt2 AS datetime; SELECT @dt1 = '2008-8-4 9:36:41', @dt2 = '2008-8-2 9:33:39';DECLARE @Days AS int, @Hours AS int, @Minutes AS int, @Seconds AS int;SET @Seconds = DATEDIFF( second, @dt2, @...
东城区18748346197: sql里日期怎么加减 - ?
乌水双黄: 可以通过SELECT DATEADD(day, 相差天数, 日期) AS 别名 的格式来计算 上周 SELECT DATEADD(day, -7, 日期) AS 别名 上月 SELECT DATEADD(month, -1, 日期) AS 别名 上年 SELECT DATEADD(year, -1, 日期) AS 别名
东城区18748346197: MySQL如何获取日期表示去年的今天 - ?
乌水双黄: |用函数date_sub或date_add直接对"年"部分去减就可以了,见下面示例:mysql> select now();+---------------------+| now() |+---------------------+| 2010-08-25 09:34:41 |+---------------------+1 row in set (0.00 sec)mysql> select date_add(now(),interval -1 ...