我在SQL Server中遇到了这个问题,我想弄清楚。我将此字符串保存在数据库中,该数据库具有文件的下载位置和下载日期,因此它可以具有尽可能长的样本。
downloadedFile = c:/Programs and Features/Public/MyFiles/Myfile Mar 23 12:55 PM
或者它可以是这样的:
downloadedFile = C:/Programs and Feature/Public/MyFiles/FileTypes/MOV/MyFile Mar 23 1:25 PM
即使更改格式,我还能获得完整的DATETIME吗?上面的第一个例子来自MM DD HH:MM格式第二个是MM DD H:MM格式,你可以看到,小时来自两个数字到一个,搞砸了我使用子字符串的机会。此字符串位于字符串的中间,因此,即使一个字符添加到结果集,也可能会将问题解析为日期时间。有什么想法吗?
答案 0 :(得分:1)
您可以使用CHARINDEX()功能
declare @downloadedFile varchar(500);
set @downloadedFile =
'c:/Programs and Features/Public/MyFiles/Myfile Mar 23 12:55 PM'
select substring(@downloadedFile,
CHARINDEX('Myfile ',@downloadedFile)+7,LEN(@downloadedFile))
结果:
Mar 23 12:55 PM
set @downloadedFile =
'C:/Programs and Feature/Public/MyFiles/FileTypes/MOV/MyFile Mar 23 1:25 PM';
select substring(@downloadedFile,
CHARINDEX('Myfile ',@downloadedFile)+7,LEN(@downloadedFile))
结果:
Mar 23 1:25 PM
答案 1 :(得分:0)
使用模拟功能分割字符串。 使用“空格”作为分隔符。数组的最后4个索引是你的日期/时间。
也许这可以帮到你