Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server sys.xp_cmdshell dir能否仅返回文件的日期?_Sql Server - Fatal编程技术网

Sql server sys.xp_cmdshell dir能否仅返回文件的日期?

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\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个空格分隔。有没有办法只知道日期?我发现拆分是一项困难的任务,因此我认为只获取日期会更容易。

您可以将结果插入临时表中,以便解析日期

编辑:添加了防御代码

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

检查类似问题: