我正在尝试按日期过滤一些查询。我正在使用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中过滤吗?
发布于 2018-11-09 01:26:10
您需要在筛选器中使用双引号,并在日期部分之间使用带有-的日期格式。
SELECT * FROM
OPENROWSET(
'VFPOLEDB',
'C:\FOLDER\VFPDB\TABLES'
;'';'',
'SELECT *
FROM pedidoc
WHERE date BETWEEN ''2012-03-01'' and ''2012-03-30'' '
) AS pedidoc发布于 2019-06-28 22:40:21
在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})'https://stackoverflow.com/questions/53212881
复制相似问题