由于某些原因,此查询在SSIS中不起作用
Select
IDLOGARCHIVOS,
NOMBREARCHIVO,
FECHACREACION
from
ATEN_TDCMARK.LOGARCHIVOS
where
trunc(FECHACREACION, 'DDD') = trunc(sysdate, 'DDD')
但是当我在Toad中测试时,我做错了什么?有没有不同的方式来治疗日期?我知道它与日期比较有关的问题,因为当我删除这个条件时,查询返回值
答案 0 :(得分:1)
这在Toad有用吗?由于to_date(sysdate, 'dd/mm/yyyy')
,我原以为它会失败。您正在尝试将日期转换为日期,Oracle通常会在此日期引发错误。
您似乎想要做的是truncate
仅包括年,月和日的日期,即没有时间成分。
这将是trunc(sysdate, 'DD')
。 trunc(sysdate)
将返回与'DD'
相同的值,并且它的同义词是默认值,但显式很好。
您对列FECHACREACION
做了同样的事吗?如果不是,那么我可以建议您将其存储为日期吗?
答案 1 :(得分:0)
对于系统日期,您必须在ssis中使用GETDATE()函数代替sysdate ..
答案 2 :(得分:0)
首先要解决我的问题,我需要在我的机器上的oracle注册表中修改NS_LANG
,找到(HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0)
。然后我重新启动机器并基于@Ben的答案我修改了我的查询并在etl OF SSIS中工作
Select
IDLOGARCHIVOS,
NOMBREARCHIVO,
FECHACREACION
from
ATEN_TDCMARK.LOGARCHIVOS
where
trunc(FECHACREACION, 'DDD') = trunc(sysdate, 'DDD')