在Access 2000中的SQL查询中,我有一个包含以下数字的字段:
其中x是小时,xx是分钟。
我需要将此字段转换为DateTime
(或Access等效字段)字段,因为我稍后需要对报表中的时间值求和。
如何将该字段转换为DateTime
?
答案 0 :(得分:0)
假设您的数字数据列名为“Num_Time”,您可以使用此查询获取包含该时间信息的Date列:
select CDate(CStr(Fix(Num_Time)) + ':' +
CStr(CLng((sgn(Num_Time) * Num_Time - Fix(Num_Time)) * 100)) + ':00') as RealTime
from myTable
查询将您的列转换为格式为“hh:mm:ss”的字符串,可以将其传递给CDate函数以获取具有给定时间的Date对象。 (查询不会处理列中的空值或无效值。)
答案 1 :(得分:0)
为了构建DATETIME
值,您需要一个日期(!!)
我不确定您的确切用法,但要使用特定时间粒度的INTEGER
值来汇总您可以考虑的值,例如分:
• 0,15 -> 15
• 1,30 -> 90
• 1 -> 60
• 0,50 -> 50
答案 2 :(得分:0)
如果你的时间超过一天,不确定有什么日期时间会为你做。您需要获得总分钟数并转换为小时:分钟。
Select
CInt(Left([Num_Time],InStr([Num_Time],",")))*60 + CInt(Right([Num_Time],Len([Num_Time])-InStr([Num_Time],","))) as [Total_Minutes]
From [Your_Table]
这会将您的小时数转为分钟加上其他分钟数。现在你只需将所有分钟的总和转回几个小时。