在每2个字符后的数据库行值中串联/ ,:

时间:2018-08-11 07:35:46

标签: sql sql-server

我在SQL Server中创建了一个表,并在时间列的表列中插入了值,我存储了一个从日志中检索到的长字符串值。

该日志返回一个像这样的时间字符串'1103873704755',现在我想用/,(空白)和K像这样每隔两个字符

'11/03/87 37:04:755'

当前查询:

select top 1 Time 
from tbl_ModBus 
order by id desc

输出:

Time
-------------
1103873704755

预期:

Time
-------------
11/03/87/ 37:04:755

那么如何使用SQL查询获得所需的字符串?

2 个答案:

答案 0 :(得分:1)

我不会使用另存为DateTime的字符串,因为它将变得不稳定

如果您只想在每2个字符后在数据库行值中进行具体的/,:

最简单的方法是尝试使用FORMAT函数。

SELECT FORMAT(CAST('1103873704755' AS BIGINT),'##/##/## ##:##:###')

sqlfiddle

|                    |
|--------------------|
| 11/03/87 37:04:755 |

答案 1 :(得分:0)

我认为在SQL中没有内置函数可以完成这项工作。

在存储日期时,始终建议使用“ DATETIME”。

但是,如果您要存储数据和时间,最好使用“ TIMESTAMP”。

关于获得的值的所有更改,您可以使用所需的任何语言在编程代码中完成!