Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 连接/,:在数据库行中,每2个字符后的值_Sql_Sql Server - Fatal编程技术网

Sql 连接/,:在数据库行中,每2个字符后的值

Sql 连接/,:在数据库行中,每2个字符后的值,sql,sql-server,Sql,Sql Server,我在SQL Server中创建了一个表,并在该表的时间列中插入了值。我存储了一个从日志中检索到的长字符串值 该日志返回的时间字符串如下所示'1103873704755',现在我想用/,(空格)和K分隔每2个字符,如下所示 '11/03/87 37:04:755' 当前查询: select top 1 Time from tbl_ModBus order by id desc 输出: Time ------------- 1103873704755 预期: Time ----------

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

该日志返回的时间字符串如下所示
'1103873704755'
,现在我想用
/
,(空格)和K分隔每2个字符,如下所示

'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查询获得所需的字符串呢?

我认为SQL中没有内置函数来完成这项工作

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

然而,如果您要存储数据和时间,最好使用“时间戳”


对于获得的值中的所有更改,您可以在程序代码中使用您想要的任何语言进行更改

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

如果只想在数据库行中执行具体的
/,:
,请在每2个字符后添加一个值

最简单的方法是,您可以尝试使用函数

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


不要将日期/时间存储为string。它看起来像日期/时间,但我不知道
755
的最终值是什么意思……它是Min、Sec和MillSec
11/03/87 37:04:755
不是有效的日期时间您的DBMS可能有一些
substring()
函数的变体(有时也称为
substr()
)。我们用它来得到绳子的部分。连接这些部分和分隔符以获得所需的字符串。对于串联,请查看是否存在
concat()
(或者可能是
concatenate()
)函数或运算符(
|
+
)。但我也不建议将时间戳存储为字符串,并且认为该值不是有效的时间戳,至少如果按照您的方式进行解释的话。
|                    |
|--------------------|
| 11/03/87 37:04:755 |