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 tablewhere 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()的问题,高人请入!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)