代码之家  ›  专栏  ›  技术社区  ›  greperror

HSQL和MySQL的区别

  •  0
  • greperror  · 技术社区  · 9 年前

    我使用MySQL作为应用程序数据库,而使用HSQL作为内存测试数据库。现在的问题是我有一个SQL selectQuery,如下所示:

    SELECT date(a.created_at) as record_date 
    FROM table a
    

    现在,date()是MYSQL中用于将DateTime转换为date的函数,但在HSQL中,相同的函数是to_date()。现在,我有了一个方法,它将上述查询命中数据库并获得输出。

    public Response dbQueryThroughJdbcTemplate(String selectQuery){
           jdbcTemplate.query(selectQuery, RowMapper); //RowMapper maps output to Response  
        }
    

    现在,我有一个测试方法来测试这个方法,

    @Test
    public void testDbQueryThroughJdbcTemplate(){
           Response response = dbQueryThroughJdbcTemplate(selectQuery);
           TestCase.assertEquals(expected, response); // avoided the code for making expected object
    }
    

    现在,由于测试环境正在使用HSQLdb,测试抛出一个错误,即日期方法不可用。

    如何解决这个问题,或者有什么更好的方法来实现这个目标?

    1 回复  |  直到 9 年前
        1
  •  3
  •   fredt    9 年前

    您可以尝试HSQLDB和MySQL都支持的替代方案

    SELECT CAST(a.created_at AS DATE) as record_date FROM table a