Mysql 查询中的查询错误;Coldfusion 8

Mysql 查询中的查询错误;Coldfusion 8,mysql,coldfusion,coldfusion-8,Mysql,Coldfusion,Coldfusion 8,我正在运行以下查询查询,并得到一个错误: Timestamp:保存所有日期和时间相关值的列的名称 MyDatabase:数据库的名称 Events:另一列的名称,名为“Events”,包含各种值,如,FIRST,SECOND,THIRD等。我在这里首先提到了 方便和清晰 <cfquery datasource = "XX.XX.X.XX" name="master"> SELECT count(Timestamp) as COUNT,date_format(Timestamp,'%m

我正在运行以下查询查询,并得到一个错误:

Timestamp:保存所有日期和时间相关值的列的名称

MyDatabase:数据库的名称

Events:另一列的名称,名为“Events”,包含各种值,如,FIRST,SECOND,THIRD等。我在这里首先提到了 方便和清晰

<cfquery datasource = "XX.XX.X.XX" name="master">
SELECT count(Timestamp) as COUNT,date_format(Timestamp,'%m-%d-%Y') 
FROM MyDatabase
WHERE EVENTS = "FIRST" GROUP BY Timestamp ;

 </cfquery> 


<cfquery dbtype="query" name="detail">

SELECT  *
FROM master 
WHERE Timestamp > <cfqueryparam value="#form.startdate#" cfsqltype="cf_sql_date"> AND Timestamp <  <cfqueryparam value="#dateAdd('d', 1,form.enddate)#" cfsqltype="cf_sql_date">;


</cfquery> 

代码中有语法错误

#dateAdd('d', 1,form.enddate#)
应该是:

#dateAdd('d', 1,form.enddate)#

代码中有语法错误

#dateAdd('d', 1,form.enddate#)
应该是:

#dateAdd('d', 1,form.enddate)#
value=“#dateAdd('d',1,form.enddate#”)”

您的结束符
#
放错了位置。它应该在右括号之后:

   value="#dateAdd('d', 1, form.enddate)#"
更新:

对于列名或别名,“Timestamp”和“Count”是错误的选择,因为它们在许多数据库中是保留字。正如阿德里安在评论中提到的那样。要在QoQ中使用“时间戳”,您必须通过将其包含在
[]
中来转义它。从长远来看,您最好重命名这些列并完全避免这个问题

 WHERE   [Timestamp] >= <cfqueryparam ....>
 AND     [Timestamp] <  <cfqueryparam ....>
value=“#dateAdd('d',1,form.enddate#”)”

您的结束符
#
放错了位置。它应该在右括号之后:

   value="#dateAdd('d', 1, form.enddate)#"
更新:

对于列名或别名,“Timestamp”和“Count”是错误的选择,因为它们在许多数据库中是保留字。正如阿德里安在评论中提到的那样。要在QoQ中使用“时间戳”,您必须通过将其包含在
[]
中来转义它。从长远来看,您最好重命名这些列并完全避免这个问题

 WHERE   [Timestamp] >= <cfqueryparam ....>
 AND     [Timestamp] <  <cfqueryparam ....>

你试过使用BETWEEN关键字吗

因此:

其中Timestamp>和Timestamp<;
将成为:

WHERE Timestamp BETWEEN <cfqueryparam value="#form.startdate#" cfsqltype="cf_sql_date" /> AND <cfqueryparam value="#dateAdd('d', 1,form.enddate)#" cfsqltype="cf_sql_date" />;
其中时间戳介于和之间;

作为替代?

您是否尝试过使用BETWEEN关键字

因此:

其中Timestamp>和Timestamp<;
将成为:

WHERE Timestamp BETWEEN <cfqueryparam value="#form.startdate#" cfsqltype="cf_sql_date" /> AND <cfqueryparam value="#dateAdd('d', 1,form.enddate)#" cfsqltype="cf_sql_date" />;
其中时间戳介于和之间;

作为一种选择?

我更新了我的帖子,但仍然收到一个错误。请查看新的错误。“谢谢”也是一个含蓄的词。@I我知道功夫-是的,接得好。我专注于错误,忽略了前面的查询。回答已更新。@Leigh@iKnowKungFoo谢谢各位,我将两个词都改了,即时间戳改为时间细节,计数改为事件。成功了。你能告诉我,当月份和年份相同时,编辑者是否根据日期进行比较?当日期和年份相同时,编辑者是否根据月份进行比较?@Leigh,你能看看我更新的问题吗?谢谢我更新了我的帖子,但仍然收到一个错误。请查看新的错误。“谢谢”也是一个含蓄的词。@I我知道功夫-是的,接得好。我专注于错误,忽略了前面的查询。回答已更新。@Leigh@iKnowKungFoo谢谢各位,我将两个词都改了,即时间戳改为时间细节,计数改为事件。成功了。你能告诉我,当月份和年份相同时,编辑者是否根据日期进行比较?当日期和年份相同时,编辑者是否根据月份进行比较?@Leigh,你能看看我更新的问题吗?谢谢我更新了我的帖子,但仍然收到一个错误。请查看新的错误。ThanksI更新了我的帖子,但仍然收到一个错误。请查看新的错误。感谢在此上下文中,
BETWEEN
是包含性的,因此从技术上讲,它不等同于您的第一个陈述,或OP中的陈述。在此上下文中,
BETWEEN
是包含性的,因此从技术上讲,它不等同于您的第一个陈述,或OP中的陈述。