gpt4 book ai didi

mysql - 查询查询错误;冷聚变 8

转载 作者:行者123 更新时间:2023-12-01 00:24:09 26 4
gpt4 key购买 nike

我正在运行以下查询查询并收到错误:

时间戳:包含所有日期和时间相关值的列的名称。

MyDatabase: 数据库名称

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

<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>

就startdate和enddate参数而言,我设置如下:

<cfparam name="form.startdate" default="#dateformat(now()-5, 'mm/dd/yyyy')#">
<cfparam name="form.enddate" default="#dateformat(now()-1, 'mm/dd/yyyy')#">
<cfparam name="form.selectdate" default="#dateformat(now(), 'mm/dd/yyyy')#">

我收到以下错误:

Error Executing Database Query.

Query Of Queries syntax error.
Encountered "Timestamp. Incorrect conditional expression, Expected one of [like|null|between|in|comparison] condition,

The error occurred in line 40

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

谁能告诉我哪里出了问题?


更新:

修复# 符号后,出现以下错误:

Error Executing Database Query.

Query Of Queries syntax error.
Encountered "Timestamp. Incorrect conditional expression, Expected one of [like|null|between|in|comparison] condition,

The error occurred in line 40

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

最佳答案

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

您的结账#标志放错地方了。它应该在右括号之后:

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

更新:

“Timestamp”和“Count”对于列名或别名来说是错误的选择,因为它们在许多数据库中都是保留字。正如阿德里安在评论中提到的,both are reserved words in CF QoQ's as well. .要在您的 QoQ 中使用“时间戳”,您必须将其包含在 [] 中以将其转义。 .从长远来看,您最好重命名列并完全避免该问题。

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


顺便说一句,在您的 SQL 比较中有一个轻微错误。结束日期运算符应为 < .通过使用 <=比较包括额外的一分钟,因此它有可能获得额外的记录,即 dateAdd('d', 1, form.enddate)在午夜。正确的比较是:

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

关于mysql - 查询查询错误;冷聚变 8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17681594/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com