从路径中仅获取日期部分,并且该部分将在sql server中动态交换
我想从路径中检索特定部分,并将该值转换为日期格式。 **\Devenvironment\E$\test\Account\20022021\Account\u Customer Line\u test\u transaction\u 15022021.xlsx** 从上面的路径中,我只想得到2002202,并将该值转换为日期格式(YYYY-MM-DD)。 有人能帮我吗 问候,,从路径中仅获取日期部分,并且该部分将在sql server中动态交换,sql,sql-server,Sql,Sql Server,我想从路径中检索特定部分,并将该值转换为日期格式。 **\Devenvironment\E$\test\Account\20022021\Account\u Customer Line\u test\u transaction\u 15022021.xlsx** 从上面的路径中,我只想得到2002202,并将该值转换为日期格式(YYYY-MM-DD)。 有人能帮我吗 问候,, Khatija这将采取一些步骤。首先,您可以使用PATINDEX查找日期和时间值的位置;然后子字符串提取该值。然后,您需
Khatija这将采取一些步骤。首先,您可以使用
PATINDEX
查找日期和时间值的位置;然后子字符串
提取该值。然后,您需要使用STUFF
将'-'
注入字符串,以便最终可以尝试使用样式代码转换它
我使用值来实现这一点,因为它更容易分解不同的部分
DECLARE@YourString varchar(100)='\Devenvironment\E$\test\Account\20022021\Account\u Customer Line\u test\u transaction\u 15022021.xlsx';
选择*,尝试转换(日期,S.FormattedDate)
FROM(VALUES(@YourString))V(YourString)
交叉应用(值(子字符串(V.YourString,NULLIF(PATINDEX('%[0-3][0-9][0-1][0-9][1-2][0-9][0-9][0-9]',V.YourString),0),8))SS(日期字符串)
交叉应用(值(STUFF(STUFF(SS.DateString,5,0',-',3,0',-')))S(FormattedDate);
谢谢拉鲁。我们可以索引和子字符串。但对我来说,问题是这条路径将动态变化。所以我不能用substring函数来找到这个特殊部分。我不知道怎么用这个。此路径来自表列。若你们不介意的话,你们可以把它修改成表列并发送给我。很抱歉再次询问“所以我不能使用子字符串函数来查找此特定部分”我不明白您在这里的意思<代码>子字符串
正在使用PATINDEX
中的值获取位置。。另外,用表替换中的中的第一个对象对您来说应该不是那么简单。我找到了一个解决方案。谢谢