Office中国论坛/Access中国论坛

标题: [求助]时间问题(无旧贴)(已解决,有2种方法) [打印本页]

作者: hsn2914    时间: 2010-6-6 10:43
标题: [求助]时间问题(无旧贴)(已解决,有2种方法)
本帖最后由 hsn2914 于 2010-6-8 17:16 编辑

原数据库设计把日期和时间分为两字段,现要计算经过时间,如何合并这两个字段,并能妥善计算时间。请大家在不改变原设计基础下帮助解决。谢谢!

进库货名  进库日期       进库时间   出库日期      出库时间
A          2010-6-4     23:00   2010-6-5    3:00

如何计算得出经过 4:00来
作者: todaynew    时间: 2010-6-6 11:20
DateDiff("h",CDate([进库日期] & " " & [进库时间]),CDate([出库日期] & " " & [出库时间]))
作者: hsn2914    时间: 2010-6-7 10:21
DateDiff("h",CDate([进库日期] & " " & [进库时间]),CDate([出库日期] & " " & [出库时间]))

此表达式可以解决,但返回的值为h整数。如果要精确到分钟的时间格式(h:nn)该如何处理?Format?还是别的方法?Format表达式该如何。谢谢!
作者: tz-chf    时间: 2010-6-7 10:24
能算小时,还不能算分钟?
作者: todaynew    时间: 2010-6-7 14:19
本帖最后由 todaynew 于 2010-6-7 14:24 编辑
DateDiff("h",CDate([进库日期] & " " & [进库时间]),CDate([出库日期] & " " & [出库时间]))

此表达式可以解决,但返回的值为h整数。如果要精确到分钟的时间格式(h:nn)该如何处理?Format?还是别的方法?Form ...
hsn2914 发表于 2010-6-7 10:21

可以把“h”换成“n”,这样求出来的是分。
dim num as long
dim t as string
num=DateDiff("n",CDate([进库日期] & " " & [进库时间]),CDate([出库日期] & " " & [出库时间]))
t=t=int(num/60) & ":" & num mod 60
作者: hsn2914    时间: 2010-6-8 17:15
谢谢todaynew帮助!我的用另一个方法,供大家参考:
Public Function HoursAndMinutes(interval As Variant) As String
'***********************************************************************
' Function HoursAndMinutes(interval As Variant) As String
' Returns time interval formatted as a hours:minutes string
'***********************************************************************
Dim totalminutes As Long, totalseconds As Long
Dim hours As Long, minutes As Long, seconds As Long
If IsNull(interval) = True Then Exit Function

hours = Int(CSng(interval * 24))

totalminutes = Int(CSng(interval * 1440))   ' 1440 = 24 hrs * 60 mins
minutes = totalminutes Mod 60

totalseconds = Int(CSng(interval * 86400))  ' 86400 = 1440 * 60 secs
seconds = totalseconds Mod 60

If seconds > 30 Then minutes = minutes + 1  ' round up the minutes and
If minutes > 59 Then hours = hours + 1: minutes = 0 ' adjust hours

HoursAndMinutes = hours & ":" & Format(minutes, "00")
End Function
在查询中
HoursAndMinutes((CDate([出库日期] & " " & [出库时间]))-(CDate([进库日期 & " " & [进库时间])))
作者: todaynew    时间: 2010-6-8 17:26
总觉得意义不大,因为很难用这个数据再进行计算,还不如计算为分或者时,便于其他计算对该数据的使用。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3