SQL-将varchar(8)转换为时间格式
时间保存为varchar(8)格式,如:09241324,我想将其转换为时间格式。我可以去掉最后一个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) + ':' +
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