ACCESS中如何比较日期和时间,使用DateDiff函数

ACCESS中如何比较日期和时间,使用DateDiff函数,第1张

DateDiff( 间隔字符, 日期1, 日期2 [,firstdayofweek[, firstweekofyear]])

一般使用 DateDiff( 间隔字符, 日期1, 日期2) 就足够了。

解释一下:此函数返回间隔的日期或时间,返回的是年、月、日就要设置间隔字符了,比如间隔字符为:"yyyy" 就表示比较年份, "d" 比较日期,"m" 比较月份,如果日期1晚于日期1,那么会返回负数。

1、首先在设计ACCESS数据表时,日期字段必须为:日期/时间,如果字段类型为字符等,日期比较时会不正确。

2、SQL语句例子(查找比指定日期后的记录):代码一select from 表名 where DateDiff( "d", 日期字段列名, #指定日期#) <= 0代码二select from 表名 where 日期字段列名>#指定日期#

你的这个要求不能直接在表中进行设置!必须在窗体中用VB代码才可以。。

使用向导创建窗体,选中你的表并添加全部字段,逐次点击下一步,完成窗体的创建。

打开VB编辑器,左侧点击刚创建的窗体,然后把下面的代码复制到右侧的代码区域,保存后关闭。

关闭刚创建窗体的设计视图,双击它打开(以后都通过它来输入),输入数据即可实现你的要求了。

Private Sub klwqd()

'创建一个名称为klwqd 的 Sub过程,以便下面的调用

'如果跨距、破坏荷载、试件高度、试件宽度都不为空,则

'抗弯拉强度等于(跨距 破坏荷载) / (试件高度 试件宽度 试件宽度)四舍五入保留3位小数

'你可以通过修改下面等式中的3来改变要保留的位数

'★另外,不知道为什么要乘二次“试件宽度”?如果是你输入错误,请去掉公式中的一个!

If Not IsNull(Me跨距) And Not IsNull(Me破坏荷载) And Not IsNull(Me试件高度) And Not IsNull(Me试件宽度) Then

Me抗弯拉强度 = Round((Me跨距 Me破坏荷载) / (Me试件高度 Me试件宽度 Me试件宽度), 3)

End If

End Sub

Private Sub Form_Load()

'窗体打开时锁定试验日期和抗弯拉强度输入框

Me试验日期Locked = True

Me抗弯拉强度Locked = True

End Sub

Private Sub 成型日期_AfterUpdate()

'成型日期更新后如果不为空,则试验日期等于成型日期向后延迟28天

If Me成型日期 <> "" Then Me试验日期 = DateAdd("d", 28, Me成型日期)

End Sub

Private Sub 跨距_AfterUpdate()

'跨距更新后调用 klwqd过程

klwqd

End Sub

Private Sub 破坏负荷_AfterUpdate()

'破坏负荷更新后调用 klwqd过程

klwqd

End Sub

Private Sub 试件高度_AfterUpdate()

'试件高度更新后调用 klwqd过程

klwqd

End Sub

Private Sub 试件宽度_AfterUpdate()

'试件宽度更新后调用 klwqd过程

klwqd

End Sub

这不是Bug!日期和时间不能直接加减的,需要用对应的函数。。

你试试下面这两个看看!我已经验证过了~~

<=FormatDateTime(Date(),2) And >FormatDateTime(DateAdd("d",Date(),-25),2)

DateAdd函数就是用来按指定方式计算未来或以前的某个日期的。

DateAdd(参数1, 参数2, 参数3)

参数1:用 "y"、"m"、"d" 三个参数分别代表按 年、月、日 进行计算

参数2:指定一个用来作为基准的日期

参数3:用以计算的数值,带上负号是向前计算,不带负号是向后计算

另外,我觉得下面这个也应该可以,留给你验证吧~~

<=FormatDateTime(Now(),2) And >FormatDateTime(DateAdd("d",Now(),-25),2)

1、解释

year(#2008-12-20#) :

2008-12-20是日期值,ACCESS中一般需要在日期两边都加个#号连接;

YEAR,是返回#2008-12-20#这个日期的年份;这里为2008年;

2、该如何用他:

比如你有一张表,里面有很多日期,而客户要求统计某一年的合计;这里就可以用到了,如下:

select 日期字段,总量  from table 

where year('日期字段')=2008

group by 日期字段

这里就统计出来了2008年总量的合计

CDate 将字符串转化成为日期 select CDate("2005/4/5")

Date 返回当前日期

DateAdd 将指定日期加上某个日期select dateAdd("d",30,Date())将当前日期加上30天,其中d可以换为yyyy或H等

DateDiff 判断两个日期之间的间隔 select DateDiff("d","2006-5-1","2006-6-1")返回31,其中d可以换为yyyy,m,H等

DatePart 返回日期的某个部分 select DatePart("d","2006-5-1")返回1,即1号,d也可以换为yyyy或m

Day 返回日期的d部分,等同于datepart的d部分

Hour 返回日期的小时

IsDate 判断是否是日期,是日期返回-1,不是日期返回0

Minute 返回日期的分钟部分

Month 返回日期的月份部分

Now 返回当前时间(完整时间,包括年月日 小时分秒)

Second 返回日期的秒部分

Time 返回当前的时间部分(即除去年/月/日的部分)

Weekday 返回某个日期的当前星期(星期天为1,星期一为2,星期二为3),例如select weekday(now());

Year 返回某个日期的年份

以上就是关于ACCESS中如何比较日期和时间,使用DateDiff函数全部的内容,包括:ACCESS中如何比较日期和时间,使用DateDiff函数、如何在ACCESS数据库中表对象中运用一个时间函数、关于Access的日期函数NOW()的问题,高人请入!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9736154.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存