Access中:DateDiff('d',Time1,Time2)
Sql中:DateDiff(d,Time1,Time2)
下面是我自己的sql语句
'判断数据库类型
IF IsSqlDataBase = 1 Then
Conn.execute("Delete from lyt_log_info where datediff(day,logintime,getdate())>=3 ")
Else
Conn.execute("Delete from lyt_log_info where datediff('d',logintime,now())>=3")
End IF
sql中d 或者day的引号不要 注意后面获得系统时间的函数是不同的
如在access中使用
Conn.execute("Delete from lyt_log_info where datediff(day,logintime,getdate())>=3 ")
则会提示
Microsoft JET Database Engine (0x80040E14)
表达式中 'getdate' 函数未定义。
如在access中day或者w y等不加引号,会提示至少没有一个参数被指定
例子:
Response.write "离2007-9-18还有"&datediff("d",now(),"2007-9-18")&"天"
距离某一天还有多少天,你可以修改下参数 ""d"" 算出距离某天还有多少月 多少week 多少 hour
注:DateDiff 函数可用来决定两个日期之间所指定的时间间隔数目。例如,可以使用 DateDiff 来计算两个日期之间相隔几日,或计算从今天起到年底还有多少个星期。为了计算 date1 与 date2 相差的日数,可以使用“一年的日数”(y) 或“日”(d)。当 interval 是“一周的日数”(w) 时,DateDiff 返回两日期间的周数。如果 date1 是星期一,DateDiff 计算到 date2 为止的星期一的个数。这个数包含 date2 但不包含 date1。不过,如果 interval 是“周”(ww),则 DateDiff 函数返回两日期间的“日历周”数。由计算 date1 与 date2 之间星期日的个数而得。如果 date2 刚好是星期日,则 date2 也会被加进 DateDiff 的计数结果中;但不论 date1 是否为星期日,都不将它算进去。如果 date1 比 date2 来得晚,则 DateDiff 函数的返回值为负数。firstdayofweek 参数会影响使用时间间隔符号 “W” 或 “WW” 计算的结果。如果 date1 或 date2 是日期文字,则指定的年份成为该日期的固定部分。但是,如果 date1 或 date2 用双引号 (" ") 括起来,且年份略而不提,则在每次计算表达式 date1 或 date2 时,当前年份都会插入到代码之中。这样就可以书写适用于不同年份的程序代码。在计算 12 月 31 日和来年的 1 月 1 日的年份差时,DateDiff 返回 1 表示相差一个年份,虽然实际上只相差一天而已。
--------------------------------------------------------------------------------
DateAdd 和 DateDiff 的第一个参数
DateAdd 返回一个日期加上特定时间间隔后的值。
语法:DateAdd(interval, number, date)
interval 表示时间单位,即指示 number 是表示年,还是月,还是分,还是其它的,如下:
yyyy 年
q 季度
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 小时
n 分钟
s 秒
不好理解的是:y、w,开始我以为 y 的单位是 365天,w 的单位是 7天。其实不是的,细读了微软参考并作了测试后发现,这其中 y、w、d 是同意义的,表示天数。
另外,DateDiff 的第一个参数中 y 和 d 是同意义的,w 不再与 d 同意义,而是表示相隔多少个 7天,这与 ww 不同。假如今天是一周的第一天,至于星期几是一周的第一天得看计算机设置和第四个参数了,那么今天与昨天相隔 0 个 w,相隔 1 个 ww,因为今天与昨天相差不足 1 个 7天,但今天已经是另外一周了。
很难想像吧,但事实就是这样,总结一下。
--------------------------------------------------------------------------------
不同
1、数据库的问题,Access和Sql读取时间的函数不一样,Now()只能在Access中使用,在Sql中只能使用GetDate()函数来获取系统时间,相应的其他函数如Time(),反正大家在调试的时候注意下
2、就是DateDiff('d',Time1,Time2),刚开始的时候我专数据库ACCESS专SQL发现这个函数怎么调试在多不能通过,在ACCESS下可以使用的到了SQL就不能使用,郁闷~~~
具体是:
Access中:DateDiff('d',Time1,Time2)
Sql中:DateDiff(d,Time1,Time2)
下面是我自己的sql语句
'判断数据库类型
IF IsSqlDataBase = 1 Then
Conn.execute("Delete from lyt_log_info where datediff(day,logintime,getdate())>=3 ")
Else
Conn.execute("Delete from lyt_log_info where datediff('d',logintime,now())>=3")
End IF
sql中d 或者day的引号不要 注意后面获得系统时间的函数是不同的
如在access中使用
Conn.execute("Delete from lyt_log_info where datediff(day,logintime,getdate())>=3 ")
则会提示
Microsoft JET Database Engine (0x80040E14)
表达式中 'getdate' 函数未定义。
如在access中day或者w y等不加引号,会提示至少没有一个参数被指定
dateAdd
--------------------------------------------------------------------------------
DateAdd 函数
返回已添加指定时间间隔的日期。
DateAdd(interval, number, date)
参数
interval
必选项。字符串表达式,表示要添加的时间间隔。有关数值,请参阅“设置”部分。
number
必选项。数值表达式,表示要添加的时间间隔的个数。数值表达式可以是正数(得到未来的日期)或负数(得到过去的日期)。
date
必选项。Variant 或要添加 interval 的表示日期的文字。
设置
interval 参数可以有以下值:
设置 描述
yyyy 年
q 季度
m 月
y 一年的日数
d 日
w 一周的日数
ww 周
h 小时
n 分钟
s 秒
'---------------------------------
可用 DateAdd 函数从日期中添加或减去指定时间间隔。例如可以使用 DateAdd 从当天算起 30 天以后的日期或从现在算起 45 分钟以后的时间。要向 date 添加以“日”为单位的时间间隔,可以使用“一年的日数”(“y”)、“日”(“d”)或“一周的日数”(“w”)。
DateAdd 函数不会返回无效日期。如下示例将 95 年 1 月 31 日加上一个月:
NewDate = DateAdd("m", 1, "31-Jan-95")
在这个示例中,DateAdd 返回 95 年 2 月 28 日,而不是 95 年 2 月 31 日。如果 date 为 96 年 1 月 31 日,则返回 96 年 2 月 29 日,这是因为 1996 是闰年。
如果计算的日期是在公元 100 年之前,则会产生错误。
如果 number 不是 Long 型值,则在计算前四舍五入为最接近的整数
分享到:
相关推荐
js版DateDiff, DateAdd, DatePart等日期数据扩展函数,非常实用
SQL中DATEADD和DATEDIFF的用法
主要介绍了SQL Server日期加减函数DATEDIFF与DATEADD用法,结合分析SQL Server使用DATEDIFF与DATEADD函数获取常见的周、月、天等日期相关运算技巧,需要的朋友可以参考下
dateadd与datediff时间段查询代码,我给公司做项目时候用过此方法,比较管用啊。
主要介绍了php实现的DateDiff和DateAdd时间函数代码分享,DateDiff用来计算两个时间的间隔,DateAdd用来对两个时间进行相加,需要的朋友可以参考下
在这篇文章里,我将告诉你如何使用DATEADD和DATEDIFF函数来计算出在你的程序中可能你要用到的一些不同日期。 在使用本文中的例子之前,你必须注意以下的问题。大部分可能不是所有例子在不同的机器上执行的结果可能...
JavaScript版的DateAdd、DateDiff、IsDate函数
先贴出我写的javascript代码,后面有使用参考。
VBScript中有两个非常好用的日期操作函数:DateAdd用来给日期添加指定时间间隔,DateDiff用来返回两个日期的时间间隔。可惜的是JavaScript没有,不过我们可以写一个函数来实现,一样的,呵呵
php//文件名:date.inc.php3//在使用这两个函数前,要先将日期或日期时间转换成timestamp类型。//如://$today=mktime(0,0,0,date("m"),date("d"),date("Y"));/****模拟sqlserver中的dateadd函数*******$part 类型:...
主要介绍了js日期相关函数dateAdd,dateDiff,dateFormat等介绍,需要的朋友可以参考下
一、Access常用内置SQL函数---日期时间函数 1.CDate 说明:将字符串转化成为日期 举例:select CDate("2008/4/5") 2.Date 说明:返回当前日期 举例:select Date() 3.DateAdd 说明:将指定日期加上某个日期 举例:...
datediff函数一般很多人都会用,但是oracle中没有datediff函数,因此想使用的话,一般需要在里面建立一个类似的。 附件是datediff的函数方法。
若是MYSQL那就用两个日期字段的差值计算的计算结果保存在另一个数值型字段中!用时调用便可! (2)如果没有数据库,那就得完全用php的时间日期函数! 下面主要说明之: 例:计算1998年5月3日到1999-6-5的天数: 复制代码 ...