Mysql 在Coldfusion CFQUERY中按分钟与不按天比较日期时间值

Mysql 在Coldfusion CFQUERY中按分钟与不按天比较日期时间值,mysql,coldfusion,cfquery,cfqueryparam,Mysql,Coldfusion,Cfquery,Cfqueryparam,这就是我的疑问 <cfquery name="qryname" datasource="dsn"> UPDATE ticketlist SET status = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="Expired"> WHERE expdatetime < <cfqueryparam value = "#yourDate#" cfsqltype = "CF_SQL_DATE" maxLength

这就是我的疑问

<cfquery name="qryname" datasource="dsn">
UPDATE ticketlist
SET status  = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="Expired"> 
WHERE expdatetime < 
<cfqueryparam value = "#yourDate#" cfsqltype = "CF_SQL_DATE" maxLength = "19">
</cfquery>
任何帮助都将不胜感激。

mysql函数应该满足您的需要

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
单位值应该是分钟或天

mysql函数应该满足您的需要

TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)

单位值应为分钟或天

我自己也是一个MS-SQL专家,但使用DateDiff函数并计算结果是正、负还是零应该可以告诉您所需的信息


但是,我不知道你为什么要这样做。“小于”测试应该会产生所需的结果,我唯一能想到的是,如果yourDate变量不够具体,即不包括时间,那么您的时间将被解释为00:00:00,这将扭曲您的结果。我建议您确保日期中的数据尽可能具体。

我自己也是MS-SQL专家,但使用DateDiff函数并计算结果是正、负还是零,应该可以告诉您所需的信息

但是,我不知道你为什么要这样做。“小于”测试应该会产生所需的结果,我唯一能想到的是,如果yourDate变量不够具体,即不包括时间,那么您的时间将被解释为00:00:00,这将扭曲您的结果。我建议您确保日期中的数据尽可能具体。

尝试使用CF\u SQL\u时间戳,即:

我不确定您是否需要maxlength属性。我发现CF映射需要是时间戳才能获得所需的精度

尝试使用CF\u SQL\u时间戳,即:


我不确定您是否需要maxlength属性。我发现CF映射需要是时间戳才能获得所需的精度

我相信这是正确的。通过使用CF_SQL_DATE,您删除了时间信息,因此数据库服务器需要比较的只是日期信息;因此,最精确的时间是一天。如果你包括时间信息,那么它将在计算中使用它。我相信这是正确的。通过使用CF_SQL_DATE,您删除了时间信息,因此数据库服务器需要比较的只是日期信息;因此,最精确的时间是一天。如果您包含时间信息,那么它将在计算中使用该信息。
<cfqueryparam value = "#yourDate#" cfsqltype = "CF_SQL_TIMESTAMP">