Sql server sys.xp_cmdshell dir能否仅返回文件的日期?
我使用sys.xp\u cmdshell dir来获取文件的最后修改日期。对于每个文件,它返回7行。其中有一个日期和文件名字段。数据如下所示:Sql server sys.xp_cmdshell dir能否仅返回文件的日期?,sql-server,Sql Server,我使用sys.xp\u cmdshell dir来获取文件的最后修改日期。对于每个文件,它返回7行。其中有一个日期和文件名字段。数据如下所示: sys.xp_cmdshell for /f %a in ('dir /b <filename.ext>') do @echo %~ta 2015年11月23日下午12:14 0新文本文件-副本10-Copy.txt 日期和文件名之间用17个空格分隔。有没有办法只知道日期?我发现拆分是一项困难的任务,因此我认为只获取日期会更容易。您可以将结
sys.xp_cmdshell for /f %a in ('dir /b <filename.ext>') do @echo %~ta
2015年11月23日下午12:14 0新文本文件-副本10-Copy.txt
日期和文件名之间用17个空格分隔。有没有办法只知道日期?我发现拆分是一项困难的任务,因此我认为只获取日期会更容易。您可以将结果插入临时表中,以便解析日期 编辑:添加了防御代码
if object_id('tempdb.dbo.#files') is not null
drop table #files;
begin
create table #files
(
files varchar(200)
)
insert into #files
exec sys.xp_cmdshell 'dir <filename>'
select *,
convert(date, substring(files, 1, PATINDEX('% %', files)))
from #files
end
希望这有帮助 您可以这样使用dir:
sys.xp_cmdshell for /f %a in ('dir /b <filename.ext>') do @echo %~ta
它将只输出的日期
如果需要文件名和日期,请使用:@echo%a%~ta检查类似问题: