计算时间值

时间:2012-07-05 23:00:01

标签: sql datetime excel-vba vba excel

我有以下列格式存储在Excel中的许多赛车单圈次数:

  

1:32.9

这个例子意味着单圈时间是1分钟,32秒和十分之九秒。

为了保存我的数据,我保留在excel中格式化为文本的值,并且我将(通过一些新手excel vba代码)上传到sql azure db到格式为nvarchar(25)的字段。

我想对值进行数学计算。主要是基本的算术函数,平均值和一些简单的统计分析。

鉴于此,处理这些数据的建议是什么?鉴于我目前的sql知识有限,我可以看到以下选项:

  1. 以某种方式将值转换为所有秒(上面的示例将变为92.9秒)并存储在格式为十进制的sql列中(我可以在T-SQL中执行此操作并仅构建视图吗?)

  2. 以某种方式将值转换为时间格式化字段,但是如果我这样做,我不清楚我的计算选项是什么

  3. 我可以在上传处理期间或在T-sql中将翻译合并到Excel vba中,尽管如果我可以将其用于视图定义并从中运行我的报告,那将会很棒。

    建议正确处理此问题的方法?感谢。

1 个答案:

答案 0 :(得分:2)

我会通过excel公式进行,并将值设置为不同的Excel工作表列,然后加载到SQL表。

如果这不可行,那么您可以将数据加载到表中,然后定义适应以下查询的视图:

WITH DummyData AS
(
  SELECT '1:32.9' TimeText -- This can be replaced with the table that you loaded.
)
SELECT CAST(
        DATEPART(mi, '00:' + TimeText) * 60 +
        DATEPART(ss, '00:' + TimeText)
         AS VARCHAR
        )+ '.' +
       CAST( DATEPART(ms, '00:' + TimeText) AS VARCHAR)
  FROM DummyData

SQLFiddle:http://sqlfiddle.com/#!3/d41d8/2349/0