0

在 Access 2000 中的 SQL 查询中,我有一个包含以下数字的字段:

  • 0,15
  • 1,30
  • 1
  • 0,50

其中 x, 是小时, ,xx 是分钟。

我需要将此字段转换为DateTime(或等效的 Access)字段,因为我稍后需要对报告中的时间值求和。

如何将该字段转换为DateTime

4

3 回答 3

0

假设您的数字数据列名为“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 对象。(查询不处理列中的空值或无效值。)

于 2009-07-01T10:49:07.983 回答
0

为了构造一个DATETIME值,您需要一个日期(!!)

我不确定您的确切用法,但要汇总您可以考虑使用INTEGER某个时间粒度的值的值,例如分钟:

• 0,15  ->  15
• 1,30  ->  90
• 1     ->  60
• 0,50  ->  50
于 2009-07-01T11:27:49.993 回答
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]

这会将您的小时数变为分钟数加上其他分钟数。现在你只需要将所有分钟的总和转回小时。

于 2009-07-01T19:27:11.787 回答