cfqueryparam日期大于或等于

时间:2011-11-10 22:51:15

标签: oracle coldfusion

我正在使用Oracle,我有一个select查询,我想从Inventory表中选择Year大于或等于2000年。

Select * from Inventory
where 
manufac_date >=  <cfqueryparam value="01/01/2000" cfsqltype="CF_SQL_DATE">

我只获得年份大于2000的那些值,而不是那些来自2000年的值。

有任何意见或建议吗?

2 个答案:

答案 0 :(得分:1)

也许Oracle不同。但只要它识别出cf_sql_date,而不仅仅是cf_sql_timestamp,我认为它没有理由不起作用。你肯定

  1. 该表包含该期间的记录
  2. 这些记录未被其他条件排除
  3. 您实际上使用的是>=,而不只是>

答案 1 :(得分:1)

您应该将cfqueryparam值设为日期对象

manufacDateFilter = createDate(2000, 1 , 1);
在查询中

然后你有

where
manufac_date >= <cfqueryparam value="#manufacDateFilter#" cfsqltype="CF_SQL_DATE">

或者像这样使用Oracle的to_date函数(未经过测试,但应该可以使用)

manufac_date >= to_date(<cfqueryparam cfsqltype="cf_sql_varchar" value="01/01/2000">,'mm/dd/yyyy')