在 Access 2000 中的 SQL 查询中,我有一个包含以下数字的字段:
- 0,15
- 1,30
- 1
- 0,50
其中 x, 是小时, ,xx 是分钟。
我需要将此字段转换为DateTime
(或等效的 Access)字段,因为我稍后需要对报告中的时间值求和。
如何将该字段转换为DateTime
?
在 Access 2000 中的 SQL 查询中,我有一个包含以下数字的字段:
其中 x, 是小时, ,xx 是分钟。
我需要将此字段转换为DateTime
(或等效的 Access)字段,因为我稍后需要对报告中的时间值求和。
如何将该字段转换为DateTime
?
假设您的数字数据列名为“Num_Time”,您可以使用此查询获取包含该时间信息的日期列:
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 对象。(查询不处理列中的空值或无效值。)
为了构造一个DATETIME
值,您需要一个日期(!!)
我不确定您的确切用法,但要汇总您可以考虑使用INTEGER
某个时间粒度的值的值,例如分钟:
• 0,15 -> 15
• 1,30 -> 90
• 1 -> 60
• 0,50 -> 50
如果您的时间超过一天,不确定有一个日期时间会对您做什么。您需要获取总分钟数并转换为小时:分钟。
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]
这会将您的小时数变为分钟数加上其他分钟数。现在你只需要将所有分钟的总和转回小时。