我正在尝试使用时间戳字段(yyyy-mm-dd HH:mm:ss)重新格式化到特定日期来查询Coldfusion中的查询。我可以将原始查询设置为“日期格式”,但我无法通过查询查询来选择日期。我已经尝试将cf_sql查询参数更改为不同的值,但我不断获得0 RecordCount。 db字段是varchar,我尝试将其更改为时间戳,但仍然无法正常工作。我没有看到任何想法?
<cfquery datasource="#DataSource#" name="rsAll">
SELECT ID, date_format(DateSent, '%Y-%m-%d') As DateSent
FROM 'workorders'
WHERE RelCompID_FK = '#SESSION.Auth.CompID#'
</cfquery>
<cfquery name="rsAllDay" dbtype="query">
SELECT *
FROM rsAll
WHERE DateSent = <cfqueryparam value="2010-03-03" cfsqltype="cf_sql_date">
</cfquery>
答案 0 :(得分:2)
MySQL date_format()
函数返回一个字符串,而不是datetime对象,因此在ColdFusion中运行查询查询时,您将使用CF_SQL_VARCHAR
数据类型而不是CF_SQL_DATE
数据类型。传入的值需要与第一个查询返回的值完全匹配才能匹配。
其他考虑因素:
1)使用CFDUMP
显示第一个查询的结果,以确保返回的数据类型符合您的期望。
2)在第一个查询的WHERE子句中也使用CFQUERYPARAM
。