我正在处理一个文件,我试图从字符串中提取日期
我有以下字符串
["07/03/22 10:29:00","1.08203","1.08205","1.08177","1.08177"
我只想知道日期
07/03/22 10:29:00
我尝试使用
CONVERT
函数,但我认为它不起作用,因为里面的字符。
谢谢
如果您使用的是 SQL Server 2016 及更高版本,则以下查询将使用
STRING_SPLIT
运算符和 ISDATE()
表达式 进行工作
DECLARE @Var AS VARCHAR (200) = '["07/03/22 10:29:00","1.08203","1.08205","1.08177","1.08177"';
SELECT Splited AS DateTime
FROM (
SELECT REPLACE(REPLACE(value, '"', ''), '[', '') AS Splited
FROM STRING_SPLIT (@Var, ',')
) A WHERE ISDATE (Splited) = 1
工作SQL Fiddle查询
只要格式始终为
["<DATETIME>","1.08203"...
,那么这将为您带来最佳的性能和最少的代码量。
DECLARE @string varchar(100) =
'["07/03/22 10:29:00","1.08203","1.08205","1.08177","1.08177"';
SELECT (SUBSTRING(@string,3,CHARINDEX('",',@string)-3));
请注意,通过下面的 STRING_SPLIT 拆分字符串将导致优化器更加努力地工作。注意执行计划...
STRING_SPLIT 解决方案成本为 792,SUBSTRING 解决方案成本为 12。