Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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 db中搜索文件名中包含日期的文件_Sql_Database - Fatal编程技术网

如何在SQL db中搜索文件名中包含日期的文件

如何在SQL db中搜索文件名中包含日期的文件,sql,database,Sql,Database,每周一,我们都会从不同的应用程序接收6个文件到SQL数据库中。这些文件名包含yyyymmdd格式的昨天日期 文件名示例为[ESMA-20170516_0099112]、[ESMA-20170516_0099113]、[ESMA-20170516_0099114]、[ESMA-20170516_0099115]、[ESMA-20170516_0099116]、[ESMA-20170516_0099117] 我需要检查一下上面提到的6个文件中是否有昨天的日期。如果上面的任何一个文件丢失了,应该发送一

每周一,我们都会从不同的应用程序接收6个文件到SQL数据库中。这些文件名包含yyyymmdd格式的昨天日期

文件名示例为[ESMA-20170516_0099112]、[ESMA-20170516_0099113]、[ESMA-20170516_0099114]、[ESMA-20170516_0099115]、[ESMA-20170516_0099116]、[ESMA-20170516_0099117]

我需要检查一下上面提到的6个文件中是否有昨天的日期。如果上面的任何一个文件丢失了,应该发送一封邮件

有没有关于我如何做到这一点的想法。 谢谢。

试试这个:

select * from table where filename like %CONCAT(YEAR(GETDATE()),CASE WHEN 
LEN(MONTH(GETDATE())) = 1 THEN '0' ELSE null END, MONTH(GETDATE()), 
DAY(DATEADD(d,-1,GETDATE())))%
假设sql server

SELECT COUNT(*) FROM yourtablename WHERE fileNameField LIKE '%-20170516_%'

用适当的值替换yourtablename和FileName字段,并使用您感兴趣的正确日期(从代码中传入)

你知道你在问什么吗?你可以像操作符一样使用
。这些文件是在表中还是在文件系统中?哪个数据库引擎?文件名所在的表名和列名是什么?请先尝试一下。如果您有特定问题,请显示一些代码,并解释您需要我们帮助的具体位置。这会起作用,但只在周一(因此,之后的任何一天都不会起作用),而且也只在周一和之前的周日在同一个月(和年份)内。在我发布此答案时,问题中没有列出周一要求。很公平,但是它仍然说“前一天”,如果前一天也在前一个月,这将不起作用。没错,我应该使用month(DATEADD(d,-1,GETDATE())可能吧。今年也是如此。好吧,你能不能也展示一下如何从批处理脚本传递日期?这感觉像是一个不同的问题……类似的问题已经得到了回答:等等。我建议你按照@Friedmann_bach的建议做——用批处理脚本的代码更新问题,你正在尝试使用的sql,你使用的是哪个sql数据库使用等,然后人们会有更多的细节。嘿,非常感谢你所有的建议!!肯定会按照你上面建议的细节更新..我在这里是一个完全的新手..正在习惯这个平台。