设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1678|回复: 6
打印 上一主题 下一主题

[窗体] [求助]时间问题(无旧贴)(已解决,有2种方法)

[复制链接]
跳转到指定楼层
1#
发表于 2010-6-6 10:43:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hsn2914 于 2010-6-8 17:16 编辑

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

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

如何计算得出经过 4:00来
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2010-6-6 11:20:27 | 只看该作者
DateDiff("h",CDate([进库日期] & " " & [进库时间]),CDate([出库日期] & " " & [出库时间]))
3#
 楼主| 发表于 2010-6-7 10:21:21 | 只看该作者
DateDiff("h",CDate([进库日期] & " " & [进库时间]),CDate([出库日期] & " " & [出库时间]))

此表达式可以解决,但返回的值为h整数。如果要精确到分钟的时间格式(h:nn)该如何处理?Format?还是别的方法?Format表达式该如何。谢谢!
4#
发表于 2010-6-7 10:24:09 | 只看该作者
能算小时,还不能算分钟?
5#
发表于 2010-6-7 14:19:57 | 只看该作者
本帖最后由 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
6#
 楼主| 发表于 2010-6-8 17:15:03 | 只看该作者
谢谢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([进库日期 & " " & [进库时间])))
7#
发表于 2010-6-8 17:26:55 | 只看该作者
总觉得意义不大,因为很难用这个数据再进行计算,还不如计算为分或者时,便于其他计算对该数据的使用。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-2 15:22 , Processed in 0.085829 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表