我想動態地在SQL Server的openquery中傳遞一個日期函數。我的SQL Server連接到OleDB Oracle數據庫。在openquery中的日期函數的語法是什麼 - OleDB到SQL Server
當我運行使用基於Oracle的日期函數我的查詢,我的查詢運行,但沒有返回數據:當我使用基於SQL Server日期函數我收到以下錯誤消息,運行查詢
SELECT *
FROM OPENQUERY([SMA], 'SELECT B.SQL_DATE
FROM DIM_DATE B
WHERE B.SQL_DATE = current_DATE');
:
SELECT *
FROM OPENQUERY([SMA], 'SELECT B.SQL_DATE
FROM DIM_DATE B
WHERE B.SQL_DATE = ''GETDATE()''');
OLE DB提供程序 「OraOLEDB.Oracle」 鏈接服務器 「SMA」 返回消息 「ORA-01841:(全)年份必須-4713和+9999之間,而不是爲0」。
我想我應該使用基於SQL Server的語法(而不是Oracle語法),但不知道current_DATE語句如何能夠運行?
任何幫助將不勝感激!
'GETDATE()'正在被SQL Server解析器的日期表示所取代,因爲評估不在字符串中,而current_DATE正在通過線路發送到連接的服務器並在那裏被解析爲sql。檢查您的語言環境並確保日期值對齊。你可以強制一個特定的日期值,這聽起來就是你需要在這裏做的。 –
所以問題的一部分是我引用的日期字段是時間戳。如果我正在查詢打開的查詢之外的數據庫,則可以使其工作:SELECT B.SQL_DATE FROM [SMA] .. [SMA]。[DIM_DATE] B WHERE B.SQL_DATE = Convert(date,GETDATE ()); 但是,我不明白找出需要使用哪些滴答,或者甚至可以通過openquery傳遞該函數。 –