2012-03-22 64 views
0

工作,出於某種原因,這個查詢不SSIS查詢不SSIS

Select 
    IDLOGARCHIVOS, 
    NOMBREARCHIVO, 
    FECHACREACION 
from 
    ATEN_TDCMARK.LOGARCHIVOS 
where 
    trunc(FECHACREACION, 'DDD') = trunc(sysdate, 'DDD') 

工作,但是當我在測試蟾蜍的偉大工程,我究竟做錯了什麼?有沒有不同的方式來處理日期?我知道它與日期的比較有關的問題,因爲當我刪除這個條件時,查詢返回值

+1

的ETL什麼錯誤時被顯示? – 2012-03-22 00:36:44

+0

不會拋出一個錯誤只是不帶記錄 – Jorge 2012-03-22 01:39:22

+1

你可以測試沒有「where」部分的查詢,所以我們可以肯定問題在trunc上(sysdate,'DDD') – Diego 2012-03-22 13:30:04

回答

0

首先要解決我的問題,我需要修改NS_LANG在Oracle註冊表我的機器在定位(HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0)。然後我重新啓動機器和底座上@Ben的答案我修改我的查詢和工作在SSIS

Select 
    IDLOGARCHIVOS, 
    NOMBREARCHIVO, 
    FECHACREACION 
from 
    ATEN_TDCMARK.LOGARCHIVOS 
where 
    trunc(FECHACREACION, 'DDD') = trunc(sysdate, 'DDD') 
1

這在蟾蜍工作?我預料它會因to_date(sysdate, 'dd/mm/yyyy')而失敗。您試圖將日期轉換爲日期,Oracle通常會引發錯誤。

你似乎想要做的是truncate只包括年,月和日的日期,即沒有時間分量。

這將是trunc(sysdate, 'DD')trunc(sysdate)將返回與'DD'相同的值,並且它的同義詞是默認值,但很明顯,這很好。

您是否正在對列FECHACREACION進行相同處理?如果不是,並且這是一個角色,我可以建議您將它作爲日期存儲嗎?

+0

問題是我存儲具有小時和分鐘的日期,所以我所做的轉換是格式化日期並僅比較沒有小時的日期。但查詢的工作 – Jorge 2012-03-22 00:20:13

+0

我更新了我的問題根據您的建議 – Jorge 2012-03-22 00:33:28

0

的系統日期必須使用GETDATE()在地方SYSDATE的SSIS功能..

for more information

+0

抱歉,但不工作thorws錯誤 – Jorge 2012-03-22 00:33:12

+0

如果你有相應的轉換,那麼你得到什麼錯誤? – 2012-03-22 00:38:17

+0

我相信OP意味着執行SQL任務實際上使用Oracle數據庫作爲其源。所以他應該使用Oracle SQL,而不是TSQL。但是這個問題並不明顯,所以我可能是錯的。 – Pondlife 2012-03-23 09:56:14