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

Ms access Access 2000:十进制到小时和分钟,ms-access,ms-access-2000,Ms Access,Ms Access 2000,在Access 2000中的SQL查询中,我有一个包含如下数字的字段: 0,15 1,30 一, 0,50 其中x是小时,xx是分钟 我需要将此字段转换为DateTime(或等效的访问权限)字段,因为我以后需要对报表中的时间值求和 如何将该字段转换为DateTime?假设包含数字数据的列名为“Num\u Time”,则可以使用此查询获取包含该时间信息的日期列: select CDate(CStr(Fix(Num_Time)) + ':' + CStr(CLng((sgn(Num_Ti

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

  • 0,15
  • 1,30
  • 一,
  • 0,50
其中x是小时,xx是分钟

我需要将此字段转换为
DateTime
(或等效的访问权限)字段,因为我以后需要对报表中的时间值求和


如何将该字段转换为
DateTime

假设包含数字数据的列名为“Num\u 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函数以获取给定时间的日期对象。(查询不考虑列中的空值或无效值。)

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

我不确定你的确切用法,但是用一个特定的时间颗粒(例如:分钟:

),使用一个<代码>整数< /代码>值来聚合你可以考虑的值。
• 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]

这会把你的时间变成几分钟加上其他几分钟。现在,您只需将所有分钟的总和返回到小时。

返回:RealTime 3:00:00 PM#Error 10:00:00 AM#Error