![](/img/trans.png)
[英]SQL date not converting in OPENROWSET query but does work as admin user
[英]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.