2016-08-22 38 views
1

我正在努力使将在sql数据库中运行查询的日常报告(使用一个bat文件)自动化。查询的条件(以字符格式)它提取数据以前day.Below是8月22日的数据格式化具有日期条件的SQL查询

我需要格式化查询援助,以便查询将拉动数据1天少的时候bat文件样本一个

select column 1, column2 from ABC where time like '20160822%' 

通过使用以下查询按计划运行。

SELECT CONVERT(char(10), GetDate()-1,126) 
+6

日期处理特定于关系数据库服务器的构造和模型。请编辑您的问题,为MySQL,sql-server,Oracle,postgreSQL或您使用的任何服务器添加标签。 –

+0

这看起来像SQL Server对我来说。 –

+0

请问你可以附上问题中的表格数据吗? – dhS

回答

1

不要在文本列,这似乎是你做了什么店的最新信息。也就是说,您可以使用SUBSTRINGCONVERT的组合来比较您的time列与昨天的日期。

SELECT col1, col2 
FROM ABC 
WHERE SUBSTRING(time, 1, 4) = CONVERT(char(4), GETDATE()-1, 126) AND 
     SUBSTRING(time, 5, 2) = SUBSTRING(CONVERT(CHAR(8), GETDATE()-1, 126), 6, 2) AND 
     SUBSTRING(time, 7, 2) = SUBSTRING(CONVERT(CHAR(8), GETDATE()-1, 126), 9, 2) 
+0

查询没有返回任何结果。时间字段长度为14个字符: – Subash

+0

感谢蒂姆为及时response.I尝试上述查询,但它没有获取任何前一日期的结果。时间字段是14个字符long.ample一个是:20160824000316.So是否可以使用修剪值然后进行比较。 – Subash

+0

你确定你有任何匹配的数据吗? 'time'字段是varchar吗? –