我需要比较两个日期。一个是页面的属性,第二个是当前日期。问题是,它们的格式不同,因此XWQL无法比较它们(我认为这是因为第一次约会)。但是,我不知道如何更改查询模块可接受的第一个日期的格式。
我看不出如何使用 $ datetool ,因为我需要在执行查询期间重新格式化日期,而不是在它之前(我没有属性的内容)
我很想找到像MySQL date_format()这样的函数。我现在使用XWQL,但查询也可以用HQL编写。
那么,你知道有什么办法吗?
FROM doc.object('$xcontext.macro.params.parentSpaceClass')
AS page
WHERE :validDate >= $currDate
ORDER BY $ordCol $xcontext.macro.params.orderDirection
validDate - 属性的名称,而不是其值(例如 page.enddate )
validDate - 01/10/2014 14:47:08
$ currDate - 2014年11月6日12:27:50 EET 2014
答案 0 :(得分:0)
'page.enddate'
作为比较值,无论您使用什么值和格式$currDate
,它都不会执行正确的比较。$currDate
作为参数传递,不要只是将其附加到查询中。
FROM doc.object('Some.Class') AS page
WHERE 'page.endddate' >= Thu Nov 06 12:27:50 EET 2014
ORDER BY ...
该文字日期未被引用,因此它将触发语法异常。即使引用,日期在SQL中也有自己的语法。幸运的是,如果您将日期作为参数传递,XWiki查询模块将知道如何将Java日期转换为正确的格式。试试这个:
$ services.query.xwql(" FROM doc.object(' $ xcontext.macro.params.parentSpaceClass') AS页面WHERE $ validDateProperty> =:date ORDER BY $ ordCol $ xcontext.macro.params.orderDirection")。bindValue(' date',$ currDate).execute() ```