在使用“ [括号]”和“的查询中找不到属性之间的区别。点号

时间:2019-04-16 07:50:16

标签: coldfusion cfquery coldfusion-2018

我有一个代码段,我在其中从数据库中获取行,并从查询中的某一列中查找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.

任何人都可以请我解释一下到底有什么区别。 谢谢。

1 个答案:

答案 0 :(得分:1)

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

当需要传递值时,第一行必须使用行号querySearchUUID['DateInvited'][ 1 ]