SQL Server:Time数据类型中需要的帮助

时间:2014-11-11 11:44:02

标签: sql-server

首先,我是SQL Server的新手(但对PostgreSQL有经验)。如果早些时候提出同样的问题,请原谅。

我的表中有一列包含时间数据类型的列。

我使用SQL Server导入和导出向导将数据上传到表中。

此外,我之前发布过如何将时间转换为距此post更长24小时的秒数。

但现在我面临另一个问题,那就是上传到桌面的时间数据类型的数据格式。

我在该列中有一个01-01-1900 14:58的值。由于列数据类型是时间,因此仅使用小时,分钟和秒部分更新值。

但是我希望以这种格式更新值,这是正确的值38:58:46

由于它是时间数据类型,因此表格14:58:46中的值正在更新。

当我使用文本功能将它转换为这样的秒时。

SELECT 
    (SUBSTRING('14:58:46', 1, 2) * 60 * 60) + 
    (SUBSTRING('14:58:46', 4, 2) * 60) + 
    SUBSTRING('14:58:46', 7, 2)

结果是53926这个,但实际上它应该是140326

有人请帮我解决数据类型的问题吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

使用以下查询。

SELECT CAST(SUBSTRING('38:58:46', 1, 2) AS bigint)* 60 * 60 + 
       CAST(SUBSTRING('38:58:46', 4, 2) AS bigint) * 60 +  
       CAST(SUBSTRING('38:58:46', 7, 2) AS bigint)

返回140326。