2009-07-01 55 views
0

在我的SQL查询在Access 2000,我有一个包含相同的数字字段:访问2000:小数小时,分钟

  • 0.15
  • 1,30
  • 0 ,50

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

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

如何将该字段转换为DateTime

回答

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对象。 (查询不照顾空或无效值的列)。

+0

这将返回: 实时 下午3时00分00秒 #错误 为10:00:00 am #错误 – JeffO 2009-07-01 19:15:19

0

为了构建一个DATETIME值,你需要一个日期(!!)

我不知道您的具体使用情况,但将某个时间粒子的价值可以考虑使用的值汇总分钟:

• 0,15 -> 15 
• 1,30 -> 90 
• 1  -> 60 
• 0,50 -> 50 
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] 

这会将您的时间变成分钟加上其他分钟。现在,您只需将所有分钟的总和恢复为小时。