作业运行时,这些数据是否可用?

时间:2017-12-12 14:59:33

标签: oracle sql-server-2008 tsql time

这似乎是一个愚蠢的问题,你可能是对的。

我们有一个tsql作业,每天在 5:30 AM AST 运行,从当天下载Oracle数据并插入Items_Sold 28 Date_Insert 12/12/2017 3:52:57 AM -06:00 Date_UTC 12/12/2017 7:00:00 AM DateTime_Zone 12/12/2017 3:00:00 AM -04:00 SalesDate 12/12/2017 3:00:00 AM 表。我通常下载的Oracle中的一行如下所示:

Date_Insert

作业成功运行但未下载此特定行。考虑到-06:00的偏移量为Data Flow Task小时,我认为在作业运行时数据不可用。我不知道Oracle服务器在哪里。

这是我用于SELECT SalesDate, Items_Sold FROM ORACLE_TABLE where SalesDate >= trunc(sysdate) 的Oracle查询。问题不在于查询,因为这已成功运行了几个月。我只是将其发布为FYI:

<mat-paginator #paginator 
               [length]="100" 
               [pageSize]="10" 
               [pageSizeOptions]="[5, 10, 25, 100]">
</mat-paginator>

感谢。

1 个答案:

答案 0 :(得分:2)

这不是一个愚蠢的问题。时区真的很混乱!这是一组代码,可以帮助您解决问题。我“认为”这解释了你的假设是正确的,“工作运行时数据不可用”。如果我根据您的问题和信息做出了一些不正确的假设,那么这个以及我所包含的示例可能会让您开始。快乐的编码!

SQL 2016 has a really cool AT TIME ZONE feature这会使这更容易,fyi。

DECLARE @timestamp_ast      DATETIMEOFFSET = N'12/12/2017 00:05:30:00 AM -4:00'
        , @timestamp_oracle DATETIMEOFFSET = N'12/12/2017 00:03:52:57 AM -06:00';

SELECT @timestamp_ast      AS [timestamp_ast]
       , @timestamp_oracle AS [timestamp_oracle];

SELECT datediff(minute, @timestamp_ast, @timestamp_oracle) AS [minutes_difference];

-- example - if first timestamp is before, there is a  [positive_minutes_difference]
SELECT datediff(minute, N'00:01:00', N'00:02:00') AS [positive_minutes_difference];

-- example - if first timestamp is after, there is a  [negative_minutes_difference]
SELECT datediff(minute, N'00:03:00', N'00:02:00') AS [negative_minutes_difference];