我有一个列有这种类型的字符串数据11%2F13%2F2017%2000%3A00%3A00
,我想将其转换为日期格式。
有没有快速的方法来做到这一点,因为强制转换和转换不起作用。
该数据来自实时数据库表。我有一个像这样的全文列:
&Invoice_Date_Start=11%2F13%2F2017%2000%3A00%3A00&I
nvoice_Date_End=11%2F19%2F2017%2000%3A00%3A00&
从我使用子串和左函数的各种组合提取的位置,列名称发票开始日期并获取我之前发布的数据。现在我需要将其转换为日期格式。
它是URL编码的。使用此链接中的UrlDecode函数,然后将其强制转换:
https://www.codeproject.com/Articles/1005508/URL-Decode-in-T-SQL
select cast(dbo.UrlDecode('11%2F13%2F2017%2000%3A00%3A00') as datetime)
[编辑]如果您被限制创建该功能,并且您只需要每次为单个一致的字段替换相同的几个字符,您只需使用REPLACE:
SELECT CAST(REPLACE(REPLACE(REPLACE('11%2F13%2F2017%2000%3A00%3A00', '%2F', '/'), '%20', ' '), '%3A', ':') AS DATETIME)