查询日期选择的Coldfusion MySQL查询

查询日期选择的Coldfusion MySQL查询,mysql,coldfusion,date-format,qoq,Mysql,Coldfusion,Date Format,Qoq,我试图在Coldfusion中查询一个时间戳字段yyyy-mm-dd HH:mm:ss重新格式化为特定日期的查询。我可以很好地将原始查询设置为日期格式,但无法将查询设置为选择日期。我曾尝试将cf_sql queryparam更改为不同的值,但始终得到0记录计数。db字段是一个varchar,我尝试将其更改为一个时间戳,但仍然不起作用。知道我没看到什么吗 <cfquery datasource="#DataSource#" name="rsAll"> SELECT ID, date

我试图在Coldfusion中查询一个时间戳字段yyyy-mm-dd HH:mm:ss重新格式化为特定日期的查询。我可以很好地将原始查询设置为日期格式,但无法将查询设置为选择日期。我曾尝试将cf_sql queryparam更改为不同的值,但始终得到0记录计数。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>
MySQL date_format函数返回一个字符串,而不是datetime对象,因此在ColdFusion中运行查询时,您将使用CF_SQL_VARCHAR数据类型而不是CF_SQL_日期数据类型。传入的值需要与第一个查询返回的值完全匹配才能匹配

其他考虑:

1使用CFDUMP显示第一次查询的结果,以确保返回的数据类型符合预期


2在第一个查询的WHERE子句中也使用CFQUERYPARAM。

谢谢您的帮助!最后,我使用STR_TO_DATE DateSent、%Y-%m-%d%T'作为DateSent,而不是DATE_formatDateSent、%Y-%m-%d'作为DateSent,将其转换为datetime对象,然后能够使用CF查询解析原始查询。这篇文章对我帮助很大。我还使用了cf_sql_date而不是cf_sql_varchart db字段是一个varchar,它不将日期存储为字符串。将日期存储为日期。那么您就不必担心这些隐式转换问题了。此外,您还可以利用内置的日期函数,而无需进行所有转换。。