4

我有一个代码片段,我从数据库中获取行并从查询中的一列中查找 dateDiff。

<cfquery name="querySearchUUID" maxrows="1">
   SELECT [DateInvited] 
   FROM [INVITE_PERSON] 
   WHERE [UUID] = 
  <cfqueryparam value="#arguments.userUUID#"cfsqltype="cf_sql_varchar">
</cfquery>

<cfif querySearchUUID.RecordCount EQ 1>
   <cfif dateDiff('h', querySearchUUID.DateInvited, now()) LTE 24>
       <cfreturn true>
   <cfelse>
       <cfreturn false>
   </cfif>
<cfelse>
  <cfreturn false>
</cfif>

但是,当我将代码更改为querySearchUUID.DateInvited失败querySearchUUID['DateInvited']dateDiff(),我不知道为什么。

这是它产生的错误。

The value class coldfusion.sql.QueryColumn cannot be converted to a date.

谁能解释一下到底有什么区别。谢谢你。

4

1 回答 1

1

根据我的经验,这取决于变量的使用方式。当您在标签中使用它时,cfdump一些 ColdFusion 魔术会打印第一行单元格中的值。当您将它传递给函数时,将coldfusion.sql.QueryColumn传递类型的原始对象。您总是可以找到调用 getMetadata 的类型,例如<cfdump var="#getMetadata(querySearchUUID['DateInvited'])#">

当您需要传递一个值时,您必须querySearchUUID['DateInvited'][ 1 ]在第一行使用以一个开头的行号。

于 2019-04-22T21:22:34.443 回答