如何从sql db中获取Date作为单个结果并与当前日期进行比较

时间:2013-10-22 12:09:40

标签: mysql sql jsf date

我的日期字段存在复杂问题。描述我想做的事情:

  1. 我的数据库中有字段date1作为日期。

    @Temporal(TemporalType.DATE)
    private Date date1;
    
  2. 我想从此字段中获取数据并与当前日期进行比较。

    @Query("SELECT date1 FROM Table io WHERE io.date1 >= DATE_FORMAT(CURRENT_DATE, '%Y-%m-%e')")
    
     Date findAll2();
    
    public boolean CheckDate1(){
    
    
        currentDate = new Date();
    
        date1 = getInterimOrdersRepo().findAll2();
    
        if(currentDate.before(date1) || currentDate.equals(date1)){
        System.out.println("TRUE");
    
        System.out.println("currentDate = "+currentDate);
       return true;
        }
        else{
            System.out.println("FALSE");
            return false;
        }
        }
    
  3. 但我有一个错误:

     result returns more than one elements; nested exception is javax.persistence.NonUniqueResultException
    
    1. 当方法返回false时,我想用“”空数据更新字段data1。
    2. 我使用jsf,我必须做什么?

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试将表中的多个值读入单个变量,这就是错误。 findall2返回一个数组(最有可能),你应该读取其中一个值 - 尝试先读一个。

此外,我相信您可以跳过查询中的“DATE_FORMAT”,这是编写代码的一种非常奇怪的方式。不清楚你想在这里实现什么