您可以使用format
日期来获取所需的字符串格式。
new Date().format('dd/MM/yyyy')
你的标准会被修改为
def books = c.list(){
def todayDateStr = new Date().format('dd/MM/yyyy')
def twoDaysAfterTodayDateStr = (new Date()+2).format('dd/MM/yyyy')
or{
between('availableOn', todayDateStr, twoDaysAfterTodayDateStr)
eq 'availableOn', 'All Days'
}
}
测试 str 比较是否有效,否则必须使用其他方法。手机发,请见谅。
更新
当日期像“01/01/2013”和“07/11/2011”时,上述内容会在特殊情况下失败。或者,您可以使用sqlRestriction
,但在这种情况下,它会与底层数据库紧密耦合。如果使用 Oracle db,则可以执行以下操作:
def books = c.list(){
def todayDateStr = new Date().format('dd/MM/yyyy')
def twoDaysAfterTodayDateStr = (new Date()+2).format('dd/MM/yyyy')
or{
sqlRestriction "to_date(available_on, 'DD/MM/YYYY') between to_date(todayDateStr, 'DD/MM/YYYY') and to_date(twoDaysAfterTodayDateStr, 'DD/MM/YYYY')"
eq 'availableOn', 'All Days'
}
}