用datediff函数怎么不能比较分钟差值呢???

glwdpy 2003-12-26 03:47:40
我用datediff函数比较两个时间的差值,在比的过程中就发现了问题,大家先看代码:
-----------------------------------------------
下面是输出time1

if DateDiff("yyyy","2000-12-26 10:17:14","2003-12-26 20:17:14")>2 then
response.Write "time1"
else
response.Write "time2"
end if
-------------------------------------------------
下面也是输出time1
if DateDiff("m","2000-12-26 10:17:14","2003-12-26 20:17:14")>2 then
response.Write "time1"
else
response.Write "time2"
end if
------------------------------
问题在下面的代码中,为什么下面是输出time2呢??

if DateDiff("m","2003-12-26 10:17:14","2003-12-26 20:17:14")>2 then
response.Write "time1"
else
response.Write "time2"
end if
即使我把时间大小换过来
if DateDiff("m","2003-12-26 20:17:14","2003-12-26 10:17:14")>2 then
response.Write "time1"
else
response.Write "time2"
end if
或者换成下面的样子,它都是输出time2
if DateDiff("m","2003-12-26 20:22:14","2003-12-26 20:17:14")>2 then
response.Write "time1"
else
response.Write "time2"
end if

我要比较分钟差值怎么比呢?????
...全文
402 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sea6789 2004-01-17
  • 打赏
  • 举报
回复
大部分datediff的说明里都有这个错误,害死我了
唉,还是这儿好,估计这儿就能有答案,还真找着了
bzscs 2003-12-26
  • 打赏
  • 举报
回复
比较分钟用“n”
<script language="vbScript">
alert(datediff("n","2003-12-26 12:00:00","2003-12-26 12:03:00"))
</script>
glwdpy 2003-12-26
  • 打赏
  • 举报
回复
我靠,我参考的那个vbscript.chm有错误!
谢谢了!!
my0707 2003-12-26
  • 打赏
  • 举报
回复
比较分钟值的datediff函数:
datediff("n",date1,date2)

参数是n,不是m
ShiningstarHu 2003-12-26
  • 打赏
  • 举报
回复
if DateDiff("m","2003-12-26 10:17:14","2003-12-26 20:17:14")>2 then

改成

if DateDiff("n","2003-12-26 10:17:14","2003-12-26 20:17:14")>2 then

Month和Minute正好名字冲突!

哈哈..

你那样出来的是月份!!

Array()   函数说明: 返回一个数组   语法格式: Array(list)   参数说明: 字符,数字均可   代码范例: Dim User=Array("张三","李四","王五")   返回结果: 建立了一个包含3个元素的数组 CInt()   函数说明: 将一个表达式转化为数字类型   语法格式: CInt(expression)   参数说明: 任何有效的字符均可   代码范例: CInt(236.42)   返回结果: 236 (如果字符串为空,则返回0值) CreateObject()   函数说明: 建立和返回一个已注册的ACTIVEX组件的实例。   语法格式: CreateObject(objName)   参数说明: objName 是任何一个有效、已注册的ActiveX组件的名字.   代码范例: Set Conn=Server.CreateObject("Adodb.Connection")   返回结果:无 CStr()   函数说明: 转化一个表达式为字符串.   语法格式: CStr(expression)   参数说明: expression 是任何有效的表达式。   代码范例: Response.Write CStr(123)   返回结果: "123" Date()   函数说明: 返回当前系统日期.   语法格式: Date()   参数说明: 无   代码范例: Date()   返回结果: 2004-09-14 DateAdd()   函数说明: 返回一个被改变了的日期。   语法格式: DateAdd(timeinterval,number,date)   参数说明: timeinterval是要增加的时间间隔类型,如"y","m","d","h"等等; number是要增加的时间间隔的数量;date是时间增加的基准时间.   代码范例: DataAdd("m",1,CDate("2004-09-14 17:12:23"))   返回结果: 2004-10-14 17:12:23 这里有一个技巧(对于初学者而言),如果number为负数,则相当于减去Abs(number)个时间间隔。 DateDiff()   函数说明: 返回两个日期之间的差值 。   语法格式: DateDiff(timeinterval,date1,date2 [, firstdayofweek [, firstweekofyear>>)   参数说明: timeinterval 表示相隔时间的类型,如"M"表示"月"。   代码范例: DateDiff("d","2000-1-1","1999-8-4")   返回结果: 从1999-8-4 到2000年还有 -150 天. Day()   函数说明: 返回一个月的第几日 .   语法格式: Day(date)   参数说明: date 是任何有效的日期。   代码范例: Day(CDate("2004-09-14"))   返回结果: 14 FormatCurrency()   函数说明: 返回表达式,此表达式已被格式化为货币值   语法格式: FormatCurrency(Expression [, Digit [, LeadingDigit [, Paren [, GroupDigit>>>>)   参数说明: Digit 指示小数点右侧显示位数的数值。默认值为 -1,指示使用的是计算机的区域设置;   LeadingDigit 三态常数,指示是否显示小数值小数点前面的零。   代码范例:   返回结果: $34.35 FormatDateTime()   函数说明: 返回表达式,此表达式已被格式化为日期或时间   语法格式: FormatDateTime(Date, [, NamedFormat>)   参数说明: NamedFormat 指示所使用的日期/时间格式的数值,如果省略,则使用 vbGeneralDate.   代码范例:   返回结果: Wednesday, August 04, 1999
列举了SQL语句中大部分常用的函数 Abs(number) 取得数值的绝对值。 Asc(String) 取得字符串表达式的第一个字符ASCII 码。 Atn(number) 取得一个角度的反正切值。 CallByName (object, procname, usecalltype,[args()]) 执行一个对象的方法、设定或传回对象的属性。 CBool(expression) 转换表达式为Boolean 型态。 CByte(expression) 转换表达式为Byte 型态。 CChar(expression) 转换表达式为字符型态。 CDate(expression) 转换表达式为Date 型态。 CDbl(expression) 转换表达式为Double 型态。 CDec(expression) 转换表达式为Decimal 型态。 CInt(expression) 转换表达式为Integer 型态。 CLng(expression) 转换表达式为Long 型态。 CObj(expression) 转换表达式为Object 型态。 CShort(expression) 转换表达式为Short 型态。 CSng(expression) 转换表达式为Single 型态。 CStr(expression) 转换表达式为String 型态。 Choose (index, choice-1[, choice-2, ... [, choice-n]]) 以索引值来选择并传回所设定的参数。 Chr(charcode) 以ASCII 码来取得字符内容。 Close(filenumberlist) 结束使用Open 开启的档案。 Cos(number) 取得一个角度的余弦值。 Ctype(expression, typename) 转换表达式的型态。 DateAdd(dateinterval, number, datetime) 对日期或时间作加减。 DateDiff(dateinterval, date1, date2) 计算两个日期或时间间的差值。 DatePart (dateinterval, date) 依接收的日期或时间参数传回年、月、日或时间。 DateSerial(year, month, day) 将接收的参数合并为一个只有日期的Date 型态的数据。 DateValue(datetime) 取得符合国别设定样式的日期值,并包含时间。 Day(datetime) 依接收的日期参数传回日 ....
MSSQL如果你是使用MSSQL数据库的话,必会用到SQL的日期函数,这里整理最详细的用法: 1.当前系统日期、时间 select getdate() 2. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 select dateadd(day,2,'2004-10-15') --返回:2004-10-17 00:00:00.000 3. datediff 返回跨两个指定日期的日期和时间边界数。 select datediff(day,'2004-09-01','2004-09-18') --返回:17 select datediff(day,'2004-09-18','2004-09-01') --返回:-17 4. datepart 返回代表指定日期的指定日期部分的整数。 SELECT DATEPART(month, '2004-10-15') --返回 10 5. datename 返回代表指定日期的指定日期部分的字符串 SELECT datename(weekday, '2004-10-15') --返回:星期五 6. day(), month(),year() --可以与datepart对照一下 select 当前日期=convert(varchar(10),getdate(),120) ,当前时间=convert(varchar(8),getdate(),114) select datename(dw,'2004-10-15') select 本年第多少周=datename(week,'2004-10-15') ,今天是周几=datename(weekday,'2004-10-15') 函数 参数/功能 GetDate( ) 返回系统目前的日期与时间 DateDiff (interval,date1,date2) 以interval 指定的方式,返回date2 与date1两个日期之间的差值 date2-date1 DateAdd (interval,number,date) 以interval指定的方式,加上number之后的日期 DatePart (interval,date) 返回日期date中,interval指定部分所对应的整数值 DateName (interval,date) 返回日期date中,interval指定部分所对应的字符串名称 参数 interval的设定值如下: 值 缩 写(Sql Server) (Access 和 ASP) 说明 Year Yy yyyy 年 1753 ~ 9999 Quarter Qq q 季 1 ~ 4 Month Mm m 月1 ~ 12 Day of year Dy y 一年的日数,一年中的第几日 1-366 Day Dd d 日,1-31 Weekday Dw w 一周的日数,一周中的第几日 1-7 Week Wk ww 周,一年中的第几周 0 ~ 51 Hour Hh h 时0 ~ 23 Minute Mi n 分钟0 ~ 59 Second Ss s 秒 0 ~ 59 Millisecond Ms - 毫秒 0 ~ 999 access 和 asp 中用date()和now()取得系统日期时间;其中DateDiff,DateAdd,DatePart也同是能用于 Access和asp中,这些函数的用法也类似 举例: 1.GetDate() 用于sql server :select GetDate() 2.DateDiff('s','2005-07-20','2005-7-25 22:56:32')返回值为 514592 秒 DateDiff('d','2005-07-20','2005-7-25 22:56:32')返回值为 5 天 3.DatePart('w','2005-7-25 22:56:32')返回值为 2 即星期一(周日为1,周六为7) DatePart('d','2005-7-25 22:56:32')返回值为 25即25号 DatePart('y','2005-7-25 22:56:32')返回值为 206即这一年中第206天 DatePart('yyyy','2005-7-25 22:56:32')返回值为 2005即2005年 具体的语法: 日期函数用来操作DATETIME 和SMALLDATETIME 类型的数据,执行算术运算。与其它函数一样,可以在 Select 语句的Select 和Where 子句以及表达式中使用日期函数。其使用方法如下: 文章来自学IT网:http://www.xueit.com/Mssql/show-4347-1.aspx 日期函数参数,其中参数个数应不同的函数而不同。 •DAY() DAY() 函数语法如下: DAY () DAY() 函数返回date_expression 中的日期值。 •MONTH() MONTH() 函数语法如下: MONTH () MONTH() 函数返回date_expression 中的月份值。 与DAY() 函数不同的是,MONTH() 函数的参数为整数时,一律返回整数值1,即SQL Server 认为其 是1900 年1 月。 •YEAR() YEAR() 函数语法如下: YEAR () YEAR() 函数返回date_expression 中的年份值。 提醒:在使用日期函数时,其日期值应在1753年到9999年之间,这是SQL Server系统所能识别的日期范 围,否则会出现错误。 •DATEADD() DATEADD() 函数语法如下: DATEADD () DATEADD() 函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期。参数“datepart ” 在日期函数中经常被使用,它用来指定构成日期类型数据的各组件,如年、季、月、日、星期等。 其取值如表4-9 所示: •DATEDIFF() DATEDIFF() 函数语法如下: DATEDIFF() (DATEDIFF() 函数返回两个指定日期在datepart 方面的不同之处,即date2 超过date1的差距值,其 结果值是一个带有正负号的整数值。针对不同的datepart, DATEDIFF()函数所允许的最大差距值不 一样,如:datepart 为second 时,DATEDIFF() 函数所允许的最大差距值为68: 年datepart 为 millisecond 时,DATEDIFF() 函数所允许的最大差距值为24 天20 小时30 分23 秒647 毫秒。 •DATENAME() DATENAME() 函数语法如下: DATENAME ( DATENAME() 函数以字符串的形式返回日期的指定部分此部分。由datepart 来指定。 •DATEPART() DATEPART() 函数语法如下: DATEPART () DATEPART() 函数以整数值的形式返回日期的指定部分。此部分由datepart 来指定。 DATEPART (dd, date) 等同于DAY (date) DATEPART (mm, date) 等同于MONTH (date) DATEPART (yy, date) 等同于YEAR (date) •GETDATE() GETDATE() 函数语法如下: GETDATE() GETDATE() 函数以DATETIME 的缺省格式返回系统当前的日期和时间,它常作为其它函数或命令的参 数使用。 文章来自学IT网:http://www.xueit.com/Mssql/show-4347-2.aspx 在开发数据库应用中,经常会遇到处理时间的问题,如查询指定时间的记录等。下面就这些常见的问题 ,结合自己的一些经验,和大家探讨一下这类问题。   首先介绍一下,SQL Server里处理时间的几个主要函数的用法: getdate()函数:取得系统当前的日期和时间。返回值为datetime类型的。 用法:getdate() 例子: select getdate() as dte,dateadd(day,-1,getdate()) as nowdat 输出结果: dte nowdat 1999-11-21 19:13:10.083 1999-11-20 19:13:10.083 (1 row(s) affected) datepart()函数:以整数的形式返回时间的指定部分。 用法:datepart(datepart,date) 参数说明:datepart时要返回的时间的部分,常用取值year、month、day、hour、minute。 date是所指定的时间。 例子: SELECT DATEPART(month, GETDATE()) AS 'Month Number' 输出结果: Month Number 11 (1 row(s) affected) dateadd()函数:通过给指定的时间的指定部分加上一个整数值以返回一个新时间值。 用法:dateadd(datepart,number,date) 参数说明:datepart(同上) date(同上) number要增加的值,整型,可正可负,正值返回date之后的时间值,负值返回date 之前的时间值 例子: select getdate() as today select dateadd(day,-1,getdate()) select dateadd(day,1,getdate()) 输出: today 1999-11-21 19:42:41.410 (1 row(s) affected) yesterday 1999-11-20 19:42:41.410 (1 row(s) affected) tomorrow 1999-11-22 19:42:41.410 (1 row(s) affected) datediff()函数:返回两个时间以指定时间部分来计算的差值。返回整数值。如1991-6-12和1991-6-21 之间以天 来算相差9天,1998-6-12和1999-6-23按年算相差1年,1999-12-1和1999-3-12按月算相差9个月 用法:datediff(darepart,date1,date2) 参数说明:datepart(同上) date1、date2(同上date) 例子: select datediff(month,'1991-6-12','1992-6-21') as a 文章来自学IT网:http://www.xueit.com/Mssql/show-4347-3.aspx

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧