Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.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-将varchar(8)转换为时间格式_Sql_Sql Server_Sql Server 2008 R2_Type Conversion_Time Format - Fatal编程技术网

SQL-将varchar(8)转换为时间格式

SQL-将varchar(8)转换为时间格式,sql,sql-server,sql-server-2008-r2,type-conversion,time-format,Sql,Sql Server,Sql Server 2008 R2,Type Conversion,Time Format,时间保存为varchar(8)格式,如:09241324,我想将其转换为时间格式。我可以去掉最后一个nn,这样hh:mm:ss就行了。我尝试使用cast/convert,但出现以下错误: 从字符转换日期和/或时间时转换失败 绳子 有人能帮我吗?插入时间格式(冒号:和小数点),并转换为时间: DECLARE @string VARCHAR(10) SET @string = '09241324' SELECT CAST( SUBSTRING(@string,1,2) + ':' +

时间保存为varchar(8)格式,如:09241324,我想将其转换为时间格式。我可以去掉最后一个
nn
,这样
hh:mm:ss
就行了。我尝试使用cast/convert,但出现以下错误:

从字符转换日期和/或时间时转换失败 绳子


有人能帮我吗?

插入时间格式(冒号:和小数点),并转换为时间:

DECLARE @string VARCHAR(10)
SET @string = '09241324'
SELECT CAST(
    SUBSTRING(@string,1,2) + ':' +
    SUBSTRING(@string,3,2) + ':' +
    SUBSTRING(@string,5,2) + '.' +
    SUBSTRING(@string,7,2) AS TIME)

插入时间格式片段(冒号:和小数点),并强制转换为时间:

DECLARE @string VARCHAR(10)
SET @string = '09241324'
SELECT CAST(
    SUBSTRING(@string,1,2) + ':' +
    SUBSTRING(@string,3,2) + ':' +
    SUBSTRING(@string,5,2) + '.' +
    SUBSTRING(@string,7,2) AS TIME)
这样行吗

convert(time, stuff(stuff(stuff(dt, 3, 0, ':'), 6, 0, ':'), 9, 0, '.'))
cast
通常比
convert
更受欢迎,但我不确定您是否需要指定格式代码

如果没有毫秒,则类似:

convert(time, stuff(stuff(stuff(dt, 3, 0, ':'), 6, 0, ':'), 9, 2, '.00'))
这样行吗

convert(time, stuff(stuff(stuff(dt, 3, 0, ':'), 6, 0, ':'), 9, 0, '.'))
cast
通常比
convert
更受欢迎,但我不确定您是否需要指定格式代码

如果没有毫秒,则类似:

convert(time, stuff(stuff(stuff(dt, 3, 0, ':'), 6, 0, ':'), 9, 2, '.00'))

您的关系数据库管理系统是什么?时间/日期函数在不同的实现中有所不同。它是sql server 2008 R2。如果可能,您应该更改表的数据类型,并将时间信息存储在时间数据类型中。以字符形式存储这些东西是一场噩梦。您的RDBMS是什么?时间/日期函数在不同的实现中有所不同。它是sql server 2008 R2。如果可能,您应该更改表的数据类型,并将时间信息存储在时间数据类型中。将这些东西以字符形式存储是一场噩梦。你的东西比我的子字符串干净得多。我总是要在
东西
上查找参数,不过:)谢谢!它可以工作,但我只想要前6位数字,比如hh:mm:ss,而不是纳秒。还有什么可以删除的吗?@GeetanjaliSachdeva使用
time(0)
只存储hh:mm:ss,而不是
time
你的东西比我的子字符串干净得多。不过,我总是要在
STUFF
上查找参数:)谢谢!它可以工作,但我只想要前6位数字,比如hh:mm:ss,而不是纳秒。是否仍要删除这些内容?@GeetanjaliSachdeva使用
time(0)
仅存储hh:mm:ss,而不是
time