求高人介绍MySQL的datediff函数
datediff(expr,expr2)
datediff()
返回起始时间
expr和结束时间expr2之间的天数。expr和expr2
为日期或
date-and-time
表达式。计算中只用到这些值的日期部分。
mysql>
lect
datediff('1997-12-31
23:59:59','1997-12-30');
->
1
mysql>
lect
datediff('1997-11-30
23:59:59','1997-12-31');
->
-31
================
当前日期用curdate()
来获取,
======================
不知道你说的时间是指日期还是真正的时间,再给你时间相减的函数.
=========
timediff(expr,expr2)
timediff()
返回起始时间
expr
和结束时间expr2
之间的时间。
expr
和expr2
为时间或
date-and-time
表达式,两个的类型必须一样。
mysql>
lect
timediff('2000:01:01
00:00:00',
->
'2000:01:01
00:00:00.000001');
->
'-00:00:00.000001'
mysql>
lect
timediff('1997-12-31
23:59:59.000001',
->
'1997-12-30
01:01:01.000002');
->
'46:58:57.999999'
datediff函数的使用方法是如何的?
使用方法如下:
1.datediff()的使用格式是:DATEDIFF(datepart,startdate,enddate)。其中startdate(开始日期) 和enddate(结束日期) 参数是合法的日期表达式。
2.datediff()函数可以用于SELECT的查询操作,用于查询所给的两个日期之间间隔的天数。
3.datediff()函数查询时起始日期的位置不做要求,比如新日期可以作为startdate,旧日期可以作为enddate,这样得到的天数是以负数显示的。
扩展资料:
datediff()使用过程中需要注意的地方:
1.datediff() 函数计算指定的两个日期中第二个日期与第一个日期的时间差的日期部分。换句话说,它得 出两个日期之间的间隔。结果是等于 date2 - date1 的日期部分的带符号整数值。
2.如果datediff()函数中日期参数的数据类型是 smalldatetime,则结果的数据类型也是 smalldatetime。可以使用 DATEADD 向 smalldatetime 值添加秒或毫秒,但只有当 DATEADD 返回的结果日期的改变不小于 1 分钟时,这样做才有意义。
参考资料来源:百度百科-datediff()函数
datediff函数用法!
1、datediff函数语法用法:
表达式DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear]])
允许数据类型: timeinterval 表示相隔时间的类型,代码为:年份 yy、yyyy 季度 qq、q;月份 mm、m;每年的某一日 dy、y;日期 dd、d;星期 wk、ww;工作日 dw;小时 hh;分钟 mi、n;秒 ss、s;毫秒 ms。
2、datediff函数用法示例:
<%
fromDate = #9/9/00#
toDate = #1/1/2000#
respon.write "There are " & _
DateDiff("d",fromDate,toDate) & _
" days to millenium from 9/9/00."
%>
返回结果: 从9/9/00 到2000年还有 150 天。
扩展资料:
datediff函数应用范围:
1,该函数在mysql中可用
2,该函数在syba中可用
3,该函数在在oracle中不可用!
------------------------------------------------------------
lect datediff(''d'','2003-01-01','2003-01-02')返回的是1;
lect datediff(''d'','2003-01-02','2003-01-01')返回的是-1;
可见datediff返回的是date2和date1之间在给定参数timeinterval下的差值。
注:
在sql2000下测试 "h"时是错误的,应该是 hh,例如:
lect datediff(hh,'2003-01-01','2003-01-02') 返回的是24。
参考资料:百度百科-DateDiff()
mysql 中自定义日期减日期函数
1. MySQL 为日期增加一个时间间隔:date_add()
t @dt = now();
lect date_add(@dt, interval 1 day); - 加1天
lect date_add(@dt, interval 1 hour); -加1小时
lect date_add(@dt, interval 1 minute); - 加1分钟
lect date_add(@dt, interval 1 cond); -加1秒
lect date_add(@dt, interval 1 microcond);-加1毫秒
lect date_add(@dt, interval 1 week);-加1周
lect date_add(@dt, interval 1 month);-加1月
lect date_add(@dt, interval 1 quarter);-加1季
lect date_add(@dt, interval 1 year);-加1年
MySQL adddate(), addtime()函数,可以用date_add() 来替代。
下面是date_add() 实现addtime() 功能示例:
mysql> t @dt = '2009-09-09 12:12:33';
mysql>
mysql> lect date_add(@dt, interval '01:15:30' hour_cond);-加上1小时15分30秒
date_add(@dt, interval '01:15:30' hour_cond)
结果:2009-09-09 13:28:03
mysql> lect date_add(@dt, interval '1 01:15:30' day_cond);-加1天1小时15分30秒
date_add(@dt, interval '1 01:15:30' day_cond)
2008-08-10 13:28:03
date_add()函数,分别为@dt 增加了“1小时15分30秒”和“1天1小时15分30秒”
2. MySQL 为日期减去一个时间间隔:date_sub()
mysql> lect date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_cond);
date_sub('1998-01-01 00:00:00', interval '1 1:1:1' day_cond)
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> lect 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> lect period_diff(200808, 200801);
period_diff(200808, 200801)
结果:7
MySQL中,这两个日期函数,一般情况下很少用到。
4. MySQL日期、时间相减函数:datediff(date1,date2), timediff(time1,time2)
MySQL datediff(date1,date2):两个日期相减date1 date2,返回天数。
lect datediff('2008-08-08', '2008-08-01'); - 7
lect datediff('2008-08-01', '2008-08-08'); -7
MySQL timediff(time1,time2):两个日期相减time1 time2,返回time差值。
lect timediff('2008-08-08 08:08:08', '2008-08-08 00:00:00');- 08:08:08
lect timediff('08:08:08', '00:00:00'); - 08:08:08
注意:timediff(time1,time2) 函数的两个参数类型必须相同。
mysql两个日期计算天数
TO_DAYS(date字段1) - TO_DAYS(date字段2)
1、利用TO_DAYS函数
lect to_days(now()) - to_days('19930908')
2、利用DATEDIFF函数
lect datediff(now(),'19930908')
参数1 - 参数2 等于间隔天数
在 MySQL 中创建表时,对照上面的表格,选择到合适自己的数据类型。选择datetime 还是 timestamp会有点犯难。这两个日期时间类型各有优点:datetime 的日期范围比较大;timestamp 所占存储空间比较小,只是 datetime 的一半。
扩展资料:
在ORDER BY操作中,MySQL 只有在排序条件不是一个查询条件表达式的情况下才使用索引。(虽然如此,在涉及多个数据表查询里,即使有索引可用,那些索引在加快 ORDER BY 方面也没什么作用)。
如果某个数据列里包含许多重复的值,就算为它建立了索引也不会有很好的效果。比如说,如果某个数据列里包含的净是些诸如 “0/1” 或 “Y/N” 等值,就没有必要为它创建一个索引。
参考资料来源:百度百科-mySQL