【问题标题】:How to convert Varchar into Datetime?如何将 Varchar 转换为日期时间?
【发布时间】:2009-08-18 01:17:03
【问题描述】:

使用 Access 2003

表格

ENO Time

001 020000
001 040000
001 220000
002 030000
002 050000
005 230000

等等……,

数据库中的时间日期类型是 Varchar。如何将 Varchar 转换为 Datetime?

这里我想得到 ENO 的总时间。

Select eno, sum (time) from table group by eno

它显示错误,例如 - 数据类型不匹配标准错误

Expected Output

001 26:00:00
002 08:00:00

等等……,

需要查询帮助。

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    您最好在几秒钟内完成工作。使用 Mid() 函数分解字符串并计算秒数,将时间相加,然后根据需要格式化结果。如果将其编写为单个查询,则需要在三个不同的地方使用相同的长表达式,因此为了提高可读性,我会将其作为两个查询来执行。第一个是:

    SELECT eno, sum(val(mid(time,1,2))*3600+val(mid(time,3,2))*60+val(mid(time,5,2))) AS secs
    FROM table
    GROUP BY eno;
    

    例如,将此查询保存为“enosums”。第二个查询是:

    SELECT eno, format(secs/3600, "00:") & format((secs/60 Mod 60), "00:") & format(secs Mod 60, "00")
    FROM enosums;
    

    我建议这种方法的原因是即使您设法转换为日期时间值(您可以通过使用 Mid() 函数和连接运算符将“hhmmss”字符串转换为“hh:mm:ss”格式,然后应用 TimeValue 函数),没有简单的方法以您需要的输出格式打印它,因为 Format() 函数只会上升到 23:59:59,然后返回到 00:00:00。

    【讨论】:

      猜你喜欢
      • 2017-07-05
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 2019-03-13
      • 1970-01-01
      • 2015-05-17
      相关资源
      最近更新 更多