I'm using SQL Server 2014 and am using an OpenQuery to retrieve data from a Progress Database.
This is my query:
DECLARE @SOMONTH DATE;
SELECT @SOMONTH = DATEADD(DAY,1,EOMONTH(GETDATE (),-1));
SELECT t2.[Amount]
FROM OPENQUERY(MyServer,
' select top 50
t1."trn-val" as "Amount"
from myTable t1
WHERE t1."trn-dte" >= '''''' + @SOMONTH + ''''''
') AS t2
/*
Previous attempts -
WHERE t1."trn-dte" >= '''''' + CONVERT(VARCHAR(10),@SOMONTH,103) + ''''''
WHERE t1."trn-dte" >= ' + '''''' + CONVERT(VARCHAR(10),@SOMONTH,103) + '''''' + '
WHERE t1."trn-dte" >= '''''' + @SOMONTH + ''''''
WHERE t1."trn-dte" >= ' + '''''' + @SOMONTH + '''''' + '
WHERE t1."trn-dte" >= ''DATE(@SOMONTH)''
WHERE t1."trn-dte" >= TO_DATE(''@SOMONTH'')
WHERE t1."trn-dte" >= TO_DATE(''@SOMONTH'',''DD/MM/YYYY'')
WHERE t1."trn-dte" >= ''@SOMONTH''
*/
However, I keep receiving the error:
[DataDirect][ODBC Progress OpenEdge Wire Protocol driver][OPENEDGE]Invalid date string (7497).
What am I missing?
Got it working:
DECLARE @TSQL varchar(8000)
declare @SOMONTH date
set @SOMONTH = DATEADD(DAY,1,EOMONTH(GETDATE (),-1));
DECLARE @Date nvarchar(10)=convert(nvarchar(10),@SOMONTH,23)
SELECT @TSQL = 'SELECT top 50 * FROM OPENQUERY([myserver], ''SELECT * FROM mytable
WHERE "trn-dte" >= ''''' + @Date + ''''''')'
EXEC (@TSQL)