如何在HQL / Grails中将月年日期转换为日期?

时间:2018-08-06 06:33:32

标签: oracle grails hql

此查询正在数据库中运行

        <?php
        $conn=mysqli_connect("localhost","root","","feedback");
        if($conn-> connect_error){
          die("Connection field:". $conn-> connection_error);
        }
        $sql="SELECT customer,restuarant,title,comment from fedbk";
        $result=$conn->query($sql);
        if($result->num_rows>0){
           while($row=$result->fetch_assoc()){
            <textarea class="textarea" rows="5" cols="30" >
          echo  $row["customer"]."\n"; 
              echo $row["restuarant"]."\n".$row["title"]."\n".$row["comment"]."\n"; 
            </textarea>
           } 
        } else {
           echo"0 result";
        }
        $conn->close()
  ?>

,但不能在Grails中作为HQL使用。给出错误为“意外令牌”。 如何在HQL / Grails中使用此查询?

例如,我有select to_date(a.year || a.month, 'YYYYMM') as dates from table a month列。我需要在新列中将其显示为year

date以上在oracle数据库中工作正常,但在我用作as的gral中的HQL中不起作用

to_date(a.year || a.month, 'YYYYMM') as dates,但是这不起作用

1 个答案:

答案 0 :(得分:0)

仅当您对数据库表建模后,HQL才是好的。如果您确实要使用此确切查询,请使用本机SQL而不是HQL:

MyController {

    Sql groovySql // package: groovy.sql

    def myAction() {

        def results = groovySql.rows("SELECT 'thisIsNativeSqlQuery'");
        // do something with your results;

    }
}

如果您已经对该表进行了建模(具有Domain类),则只需使用YourDomain.list()来获取它们,然后创建一种getter方法即可以您拥有的格式形成日期:

Date toDate() {
​    return Date.parse("yyyyMM", "201808")​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
}

或具有为您执行此操作的临时字段,这完全取决于您的用例