我正在尝试执行以下查询:
SELECT *
FROM OPENQUERY
(
CLP,
'
SELECT *
FROM ORACLE_TABLE
WHERE [UPDATEDATE] > ''1900-01-01 12:00 AM''
'
)
当我删除日期条件时,此查询工作正常。但是,一旦我尝试通过此标准,它就不再起作用了。我无法弄清楚我错过了什么。
我正在尝试执行以下查询:
SELECT *
FROM OPENQUERY
(
CLP,
'
SELECT *
FROM ORACLE_TABLE
WHERE [UPDATEDATE] > ''1900-01-01 12:00 AM''
'
)
当我删除日期条件时,此查询工作正常。但是,一旦我尝试通过此标准,它就不再起作用了。我无法弄清楚我错过了什么。
尝试删除[
并]
添加转换日期:
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 '')
'
)
采用
SELECT *
FROM OPENQUERY
(CLP,SELECT * FROM ORACLE_TABLE WHERE trunc(UPDATEDATE) > ''01-JAN-1900'')
在 Oracle 中,所有没有时间组件的日期默认为 12:00 AM(或 00:00 Hrs)。
您也可以使用to_timestamp(UPDATEDATE)
,但为此,列应该是时间戳类型(即包含时间戳,否则它总是会给出 12 AM)。您也可以使用to_char(UPDATEDATE,'YYYY-MM-DD HH:MI AM')
.