如何将此 11%2F13%2F2017%2000%3A00%3A00 字符串转换为日期格式

HOW CAN I CONVERT THIS 11%2F13%2F2017%2000%3A00%3A00 STRING INTO DATE FROMATE

我有一列包含这种类型的字符串数据 11%2F13%2F2017%2000%3A00%3A00,我想将其转换为日期格式。

有没有什么快速的方法可以做到这一点,因为转换和转换不起作用。

该数据来自实时数据库 table。我有一个这样的全文专栏:

&Invoice_Date_Start=11%2F13%2F2017%2000%3A00%3A00&I‌​
nvoice_Date_End=11%2‌​F19%2F2017%2000%3A00‌​%3A00&

我从那里使用子字符串和左函数的各种组合提取列名发票开始日期并获取我之前发布的数据。现在我需要将它转换为日期格式。

它是 URL 编码的。使用此 link 中的 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)