我有一个代码段,我在其中从数据库中获取行,并从查询中的某一列中查找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.
任何人都可以请我解释一下到底有什么区别。 谢谢。
答案 0 :(得分:1)
根据我的经验,这取决于变量的使用方式。在cfdump
标签中使用它时,某些ColdFusion魔术师会从第一行的单元格中打印出该值。将其传递给函数时,将传递类型为coldfusion.sql.QueryColumn
的原始对象。您总是可以找到调用getMetadata的类型,例如<cfdump var="#getMetadata(querySearchUUID['DateInvited'])#">
当需要传递值时,第一行必须使用行号querySearchUUID['DateInvited'][ 1 ]
。