簡體   English   中英

OpenRowset按日期過濾查詢結果

[英]OpenRowset filter query results by date

我試圖按日期篩選一些查詢。 我正在使用OPENROWSET從DBF表中提取數據,但是我無法按日期進行過濾,Visual Studio說數據類型為數據庫日期[DT_DBDATE]。 我正在使用此查詢:

SELECT * FROM
OPENROWSET(
'VFPOLEDB', 
'C:\FOLDER\VFPDB\TABLES' 
;'';'', 
'SELECT *
FROM pedidoc
WHERE date BETWEEN '20120301' and '20120330''
) AS pedidoc

但是SQL Server說'語法錯誤'整齊'20120301'任何想法如何在OPENROWSET內部進行過濾?

您將需要在過濾器中使用雙引號,並在日期部分之間使用帶有-的日期格式。

SELECT * FROM
OPENROWSET(
'VFPOLEDB', 
'C:\FOLDER\VFPDB\TABLES' 
;'';'', 
'SELECT *
FROM pedidoc
WHERE date BETWEEN ''2012-03-01'' and ''2012-03-30'' '
) AS pedidoc

在OPENROWSET內部,SELECT語句必須具有OLEDB提供程序可接受的語法。 在這種情況下,請不要使用SQL SERVER語法,而要使用VISUAL FOXPRO語法:

SELECT * FROM
OPENROWSET(
'VFPOLEDB', 
'C:\FOLDER\VFPDB\TABLES' 
;'';'',
'SELECT * FROM pedidoc WHERE BETWEEN(date, {^2012-03-01}, {^2012-03-30})'
) AS pedidoc

從VFP-> MSSQL轉換日期/時間類型可能存在問題,因此請使用DTOS函數將它們轉換為字符串(從日期轉換為字符串):

'SELECT DTOS(date) as datestr FROM pedidoc WHERE BETWEEN(date, {^2012-03-01}, {^2012-03-30})'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM