在变量中添加字符

时间:2012-01-07 11:18:56

标签: sql sql-server stored-procedures

我需要将值为20061212的字符串/ varchar变量设为字符串/ varchar值2006-12-12 00:00:00

我找不到合适的SQL语法代码来使它在SQL Server中发生。

可以在SQL Server中将代码创建为存储过程或类似代码。

4 个答案:

答案 0 :(得分:4)

SELECT
  LEFT(@string, 4)
  + '-' + SUBSTRING(@string, 5, 2)
  + '-' + SUBSTRING(@string, 7, 2)
  + ' 00:00:00'

可以将你的字符串转换为DATETIME,然后将其转换回所选格式的字符串。但这可能比这个更明确的选择更慢。

SELECT
  CONVERT(VARCHAR(19), CAST(@string AS DATETIME), 120)

答案 1 :(得分:2)

您可以使用stuff

declare @s varchar(8) = '20061212'
select stuff(stuff(@s, 7, 0, '-'), 5, 0, '-')+' 00:00:00'

答案 2 :(得分:1)

您可以使用SUBSTRING()函数(详见此处:http://www.sql-statements.com/sql-substring.html)拆开原始字符串,然后将这些片段与添加的短划线放在一起。结束时使用连接运算符+。

答案 3 :(得分:1)

独立于文化的变体:

SELECT CONVERT(varchar, convert(datetime, '20061212', 112), 120)

这仅适用于DATETIME允许的日期范围,请改用<{1}}