gpt4 book ai didi

MySQL 和 Coldfusion 日期问题

转载 作者:行者123 更新时间:2023-11-29 01:06:56 25 4
gpt4 key购买 nike

我在 MySQL 表中有一个 timestamp 字段。我正在尝试使用以下 SQL 查询来查询表:

SELECT  login_mode,count(login_mode) as total 
FROM login_activity,ccac_registered_users
WHERE login_activity.student_id=ccac_registered_users.student_id
AND login_date >= STR_TO_DATE('01/16/2013','%m/%d/%Y')
AND login_date <= STR_TO_DATE('01/17/2013','%m/%d/%Y')
GROUP BY login_mode

当我直接在 Mysql 上运行查询时,查询工作正常,但在 coldfusion 应用程序中不起作用。我难住了!生成日期的代码是:

login_date >= STR_TO_DATE(
'#DateFormat(CreateODBCDate(startDate),'mm/dd/yyyy')#'
, '%m/%d/%Y'
)

ColdFusion 的错误是这样的:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '01/16/2013'',''%m/%d/%Y'') AND login_date <= STR_TO_DATE(''01/17/2013'',''%m/%d/' at line 1

这里有什么问题吗?

编辑

我刚刚转储了 CF 试图执行的 sql。

SELECT login_mode,count(login_mode) as total 
FROM login_activity,ccac_registered_users
WHERE login_activity.student_id=ccac_registered_users.student_id
AND login_date >= STR_TO_DATE(''01/16/2013'',''%m/%d/%Y'')
AND login_date <= STR_TO_DATE(''01/17/2013'',''%m/%d/%Y'')

日期前后还有其他引号,它们导致了问题。如果我从代码中删除我添加的额外内容,则不会添加任何内容。

最佳答案

(来 self 之前的评论......)

绝对不需要使用dateFormatstr_to_dateDateFormat 专为演示而设计并返回一个字符串。您应该使用的是日期对象。 CreateODBCDate 已经为您提供了。所以直接在你的查询中使用它。 (显然,您应该始终首先验证输入)

 WHERE column >= #CreateODBCDate(startDate)#  
....

.. 或者更好的是,使用 cfqueryparam:

 WHERE column >= <cfqueryparam cfsqltype="cf_sql_date" value="#startDate#">

关于MySQL 和 Coldfusion 日期问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14487963/

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