Database ORA-01840:使用Bind变量时,输入值不够长,不适合日期格式

Database ORA-01840:使用Bind变量时,输入值不够长,不适合日期格式,database,oracle,Database,Oracle,我试图附加一个绑定变量:Year,但得到的错误是ORA-01840:input value不够长,不适合日期格式 sql是 Select SUM(CASE WHEN (date_start<= to_date('01/01/'||:Year,'MM/DD/YYYY') and (actual_termination_date is null or actual_termination_date > to_date('01/01/'||:Ye

我试图附加一个绑定变量:Year,但得到的错误是ORA-01840:input value不够长,不适合日期格式

sql是

Select SUM(CASE WHEN (date_start<= to_date('01/01/'||:Year,'MM/DD/YYYY') and
                     (actual_termination_date is null or  actual_termination_date > to_date('01/01/'||:Year,'MM/DD/YYYY')))
                THEN 1 ELSE 0 END ) AS CJAN 
from PER_PERIODS_OF_SERVICE ppp 
我试着用了一年,但没有用。
你能告诉我是什么导致了这个问题吗?

嗯,逻辑似乎更简单,可以这样表达:

Select SUM(CASE WHEN extract(year from date_start) <= :Year and
                     (extract(year from actual_termination_date) >= :Year or
                      actual_termination_date is null
                     )
                THEN 1 ELSE 0 END ) AS CJAN 
from PER_PERIODS_OF_SERVICE ppp 

也许这也能解决你的问题。

用它来获得一年的第一天


truncto_date:YEAR,'YYYY','YYYY'

年份的值是多少?这可能是问题所在:年份可以将2015年或2016年作为值,我有其他案例陈述案例何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时开始,何时结束,其他1个0结束,这一切正常。谢谢,但我有很多这样的案例陈述,每个月初我都会检查。所以我需要以某种方式追加年份。因为年份可以将2015年和2016年作为价值。如果你有不同的问题,那么你应该问这个问题。这个问题似乎是关于一整年的。我只需要知道如何在12个案例陈述中动态地添加年份后缀,我每个月都有一个。或者我所遵循的方法是否有解决办法