Access 2000:十进制到小时和分钟

时间:2009-07-01 10:05:02

标签: ms-access ms-access-2000

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

  • 0,15
  • 1,30
  • 1
  • 0.50

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

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

如何将该字段转换为DateTime

3 个答案:

答案 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]

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