首先,我是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
。
有人请帮我解决数据类型的问题吗?
提前致谢。
答案 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。