2016-09-27 55 views
0

我想包括一個DATEDIFF到SSIS我的SQL命令,但我收到以下錯誤:則DateDiff在SSIS

我已經做了相當多的研究,但似乎無法得到命令的工作,試圖改變第二個到ss,嘗試包括(DT_Date),嘗試引用第二和其他東西,但不知道爲什麼它不工作。

有誰知道什麼是通過查詢正確的語法?

SELECT 
    http.xxx.xxx_at AS xxx_at, 
    http_xxxxx.xxxxx_at AS xxxxx_at, 
DATEDIFF(second, xxx.xxx_at,http_xxxxx.xxxxx_at) As duration 
FROM public.xxxxx 
FETCH FIRST 100 ROWS ONLY 
+1

也許用「SS」或「S」,而不是第二 – Nebi

+0

如果「ss」導致錯誤,那麼錯誤是什麼?日期一定是正確的格式? – MiguelH

+0

你連接的RDBMS是什麼?看起來像SQL Server語法和postgres錯誤消息。 –

回答

1

正如Martin所建議的那樣,postgres沒有DATEDIFF命令。解決方法是使用date_part數:

((DATE_PART('day', created_at::timestamp - completed_at::timestamp) * 24 + 
       DATE_PART('hour', created_at::timestamp -completed_at::timestamp)) * 60 + 
       DATE_PART('minute', created_at::timestamp - completed_at::timestamp)) * 60 + 
       DATE_PART('second', created_at::timestamp -completed_at::timestamp) As Duration 
1

雖然你已經找到了解決辦法,我相信我的解決方案可能會稍微更清晰:

(
    DATE_PART('second', created_at::timestamp) - 
    DATE_PART('second', completed_at::timestamp) 
) AS duration