在SQL OPENQUERY

时间:2017-05-18 11:01:49

标签: sql oracle

我正在尝试在SQL中创建一些存储过程来访问Oracle数据库。

Oracle中的所有日期都存储为10位数字,这会造成一些混淆。

我设计了一些动态SQL,它允许我们运行OPENQUERY来选择参数,但我想要做的是使用参数来指定日期。

由于我们无法在服务器上创建视图,因此我们无法在服务器上创建视图,这很难证明这一点。

示例:

Oracle 10 : 1483527061
SQL Date  : 2017/01/04 10:51:01 000

如果您需要更多信息,请与我们联系。

2 个答案:

答案 0 :(得分:0)

Oracle中的日期/时间看起来像Unix格式。如果是这样,你可以这样做:

select date '1970-01-01' + datecol / (60*24*24)

这会将其转换为Oracle中的日期。

答案 1 :(得分:0)

Oracle安装程序

CREATE TABLE your_table ( datecol ) AS
  SELECT 1483527061 FROM DUAL;

<强>查询

SELECT datecol,
       DATE '1970-01-01' + NUMTODSINTERVAL( datecol, 'SECOND' ) AS datetime
FROM   your_table

<强>输出

DATECOL    DATETIME
---------- -------------------
1483527061 2017-01-04 10:51:01

(如果你需要处理闰秒,那么你可以create a package to handle this。)