日常BUG02 —— 在xml文件中写SQL查询问题

1.问题描述

使用的是MYSQL数据库,在查询过程中一个日期字段始终查询出来的和数据存储的值不一致。数据库存储的数据以及数据结构如下:

name current_time
任务编号 2021-09-22 11:31:13

查询出来的数据是:

name=任务编号, currentTime=Thu Jan 01 11:31:13 CST 1970

这个currentTime的数据怎么也对不上,时间是对的但是日期却是从1970年01月01日开始的。XML中查询的SQL语句如下:

 <select id="select" parameterType="string" resultType="xxx">
        SELECT
        name AS name,
        current_time AS currentTime
        FROM t_number
        WHERE id = #{id, jdbcType=VARCHAR}
    </select>

就是一个普通的单表查询,将上述XML文件中的SQL拷贝到数据库执行,结果如下:

SELECT
        name AS name,
        current_time AS currentTime
        FROM t_number
        WHERE id = 'RWBH'
-------查询结果-----------
任务编号	11:35:23

也是一样的结果。

2.问题原因

这个原因很难排查,也上网查询过设置数据库时区,使用@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")注解,都没用。
通过我把SQL拷贝到数据库进行执行我发现结果是一致的,我在想是不是字段出现问题了,结果我发现XML写的SQL语句中current_time字段的颜色和其他的字段颜色不一致,我确信就是字段名称出现了问题:
在这里插入图片描述
原来current_time字段是MYSQL中的关键字是一个函数,如下:
在这里插入图片描述
在这里插入图片描述
所以在查询的时候,返回的结果不是数据库中存储的数据,而是current_time这个MYSQL自带的函数的结果。

淦~

3.问题解决

current_time字段换成其它的即可。换成current_times:

name current_times
任务编号 2021-09-22 11:31:13

出现出来的数据是:

name=任务编号, currentTimes=Sat Sep 25 00:38:02 CST 2021

解决!这个问题吧,都不算个坑,但是如果不小心,也足够让我们摔个大跟头了~

猜你喜欢

转载自blog.csdn.net/qq_42785250/article/details/120469292