0

我在 Excel 中存储了多行赛车圈速,格式如下:

1:32.9

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

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

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

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

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

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

我可以在上传处理过程中将翻译合并到 Excel vba 或 T-sql 中,尽管如果我可以将其处理到视图定义中并从中运行我的报告,那就太好了。

对正确处理此问题的建议?谢谢。

4

1 回答 1

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

于 2012-07-05T23:12:18.383 回答