我正在尝试按日期过滤一些查询。我正在使用OPENROWSET从DBF表中提取数据,但是我无法按日期进行过滤,Visual Studio说数据类型为数据库日期[DT_DBDATE]。我正在使用此查询:
$accessToken['access_token']
但是sql server说“语法错误整齐'20120301' 知道如何在OPENROWSET内部进行过滤吗?
答案 0 :(得分:0)
您将需要在过滤器中使用双引号,并在日期部分之间使用-
的日期格式。
SELECT * FROM
OPENROWSET(
'VFPOLEDB',
'C:\FOLDER\VFPDB\TABLES'
;'';'',
'SELECT *
FROM pedidoc
WHERE date BETWEEN ''2012-03-01'' and ''2012-03-30'' '
) AS pedidoc
答案 1 :(得分:0)
在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})'