如何在SQL Server中将字符串1012020
转换为日期1/01/2020
?
对此非常困难。
答案 0 :(得分:0)
尝试一下,您的字符串在某个日期缺少第一个“ 0”字符,因此我添加了1行对其进行了修复:
DECLARE @yourdate VARCHAR(10)= '1012020'
SET @yourdate=RIGHT('0'+@yourdate,8)
SELECT CAST(SUBSTRING(@yourdate,5,4)+'-'+SUBSTRING(@yourdate,3,2)+'-'+SUBSTRING(@yourdate,1,2) AS DATE)
答案 1 :(得分:0)
您可以使用SUBSTRING
来实现。 Demo on db<>fiddle
语法
SUBSTRING(字符串,开始,长度)
year
。结果,@Year = RIGHT(@strDate, 4)
将SUBSTRING()
与Len()
结合使用可获得month
。例如:
@strDate = '1012020'
,起始索引应为2
@strDate = '21012020'
,起始索引应为3
==>因此,我们有了@Month = SUBSTRING(@strDate, LEN(@strDate) - 5, 2)
@Day
的长度应为长度@strDate
的其余部分减去length of year is 4
+ length of month is 2
,因此,我们有了length = LEN(@strDate) - 6
DECLARE @strDate Varchar(20) = '1012020'
DECLARE @Year Varchar(4) = RIGHT(@strDate, 4),
@Month Varchar(4) = SUBSTRING(@strDate, LEN(@strDate) - 5, 2),
@Day Varchar(4) = LEFT(@strDate, LEN(@strDate) - 6)
SELECT @Day + '/' + @Month + '/' + @Year