我正在尝试执行以下查询:
SELECT *
FROM OPENQUERY
(
CLP,
'
SELECT *
FROM ORACLE_TABLE
WHERE [UPDATEDATE] > ''1900-01-01 12:00 AM''
'
)
当我删除日期条件时,此查询正常工作。但是一旦我试图通过这个标准它就不再有用了。我无法弄清楚我错过了什么。
答案 0 :(得分:1)
尝试删除[
和]
并添加转换日期:
SELECT *
FROM OPENQUERY
(CLP,
'
SELECT *
FROM ORACLE_TABLE
WHERE
UPDATEDATE > to_date(''1900-01-01 12:00'',''yyyy-mm-dd hh:mi'')
'
)
或am
SELECT *
FROM OPENQUERY
(CLP,
'
SELECT *
FROM ORACLE_TABLE
WHERE
UPDATEDATE > to_date(''1900-01-01 12:00 AM'',''yyyy-mm-dd hh:miam '')
'
)
答案 1 :(得分:0)
使用
SELECT *
FROM OPENQUERY
(CLP,SELECT * FROM ORACLE_TABLE WHERE trunc(UPDATEDATE) > ''01-JAN-1900'')
所有没有时间组件的日期默认为Oracle上午12:00(或00:00小时)。
您也可以使用to_timestamp(UPDATEDATE)
但是为了使其工作,该列应该是时间戳类型(即包含时间戳,否则它将始终给出12 AM)。您也可以使用to_char(UPDATEDATE,'YYYY-MM-DD HH:MI AM')
。