我有以下列格式存储在Excel中的许多赛车单圈次数:
1:32.9
这个例子意味着单圈时间是1分钟,32秒和十分之九秒。
为了保存我的数据,我保留在excel中格式化为文本的值,并且我将(通过一些新手excel vba代码)上传到sql azure db到格式为nvarchar(25)的字段。
我想对值进行数学计算。主要是基本的算术函数,平均值和一些简单的统计分析。
鉴于此,处理这些数据的建议是什么?鉴于我目前的sql知识有限,我可以看到以下选项:
以某种方式将值转换为所有秒(上面的示例将变为92.9秒)并存储在格式为十进制的sql列中(我可以在T-SQL中执行此操作并仅构建视图吗?)
以某种方式将值转换为时间格式化字段,但是如果我这样做,我不清楚我的计算选项是什么
我可以在上传处理期间或在T-sql中将翻译合并到Excel vba中,尽管如果我可以将其用于视图定义并从中运行我的报告,那将会很棒。
建议正确处理此问题的方法?感谢。
答案 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