2016-08-22 129 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嗎? –