需要使用charindex从字符串格式化SQL中的日期
我正在尝试使用charindex从字符串数据格式化mm/dd/yyyy格式的日期,字符串中的日期是yyyyymmdd。我试过使用convert、cast、castconvert 如果有人能帮忙,那就太好了!我有示例代码需要使用charindex从字符串格式化SQL中的日期,sql,sql-server,tsql,ssrs-2012,Sql,Sql Server,Tsql,Ssrs 2012,我正在尝试使用charindex从字符串数据格式化mm/dd/yyyy格式的日期,字符串中的日期是yyyyymmdd。我试过使用convert、cast、castconvert 如果有人能帮忙,那就太好了!我有示例代码 CONVERT ( VARCHAR (10) , CASE WHEN CHARINDEX ('^3507=', reg.BetaReque
CONVERT (
VARCHAR (10)
, CASE
WHEN CHARINDEX ('^3507=', reg.BetaRequestString) = 0 THEN
''
ELSE
RIGHT(LEFT(reg.BetaRequestString, CHARINDEX ('^3507=', reg.BetaRequestString) + 13), 8)
END
, 101
您似乎想要这样:
CASE WHEN CHARINDEX ('^3507=', reg.BetaRequestString) = 0
THEN ''
ELSE CONVERT(VARCHAR(10),RIGHT(LEFT(reg.BetaRequestString, CHARINDEX ('^3507=', reg.BetaRequestString) + 13), 8), 101)
END
知道输入日期格式后,可以拆分零件并重新组织日期
declare @date varchar(100)='20021230' ,
@Year int,@month int ,@day int
select @year=Substring(@date,1,4) ,@month=SUBSTRING(@date,5,2),@day=SUBSTRING(@date,7,2)
select convert(VARCHAR(10),(DATEFROMPARTS(@year,@month,@day)),101)
产出-12/30/2002
您还可以在转换函数中使用datetime样式:
你能提供样本数据吗?不清楚转换的格式是什么,转换的格式是什么,将日期存储在Datetime列中。如果我不知道日期本身,字符串中的格式总是一样的。虽然这段代码只能回答这个问题,但请解释一下为什么会这样做。这将帮助未来的用户评估他们的情况的答案。如果我不知道日期本身,这仍然有效吗字符串中的格式始终是sameYes,它将有效。。。您的日期是否存储在表列中?
declare @a nvarchar(10)
set @a='20180203'
select
convert(nvarchar(10),substring(@a,5,2)+'/'+substring(@a,7,2)+'/'
+substring(@a,1,4),101)
DECLARE @yyyymmdd sysname = '20180101'
SELECT CONVERT(sysname, CONVERT(datetime, @yyyymmdd, 112), 101)