The bad news:
There’s currently a limitation with the OPENQUERY method and dates. The only workaround is to pass them as strings.
A potential solution is to use a string parameter (e.g. drop down with list of dates or have the user type in dates).
The string parameter can be cast inside the stored procedure do perform date operations in the query. The parameter name needs to be wrapped in quotes when using OPENQUERY.
The good news:
In 8.1 (releasing in the next few months) with certain databases, (Sybase ASE, Teradata, and SQL Server), you will be able to call a stored procedure and pass parameter values dynamically to the stored procedure to modify the result set.
This will work with dates as parameters because we don’t use OPENQUERY with this new feature.