实体类的日期属性为:
private String busDate;
数据库语句,对日期的查询段如下:
select
to_date(bus_date,'YYYY/MM/DD') as busDate --查询日期数据
,name
,age
from
users
查询时,规定数据库日期格式为“YYYY/MM/DD”
在数据库软件中查询时,数据是正常的:
结果,在调用接口时,返回的数据格式,变成了 “YYYY-MM-DD hh:mm:ss”
如下:
{
“retCode”: “0000”,
“retMsg”: “”,
“data”: {
“list”: [
{
“name”: “张三”,
“busDate”: “2022-06-20 00:00:00.0“,
“age”: 30
}
]
}
}
原因:
SQL语句中,我们查询日期时,使用了to_date函数,该函数对应Java中的Date类型,而我们实体类使用的String类型接收的,所有导致mybatis在查询装载时,把默认的日期格式【YYYY-MM-DD hh:mm:ss】赋值给busDate字段。
解决方法:
修改SQL语句,使用to_char函数,对日期数据进行字符串转换
如下:
select
to_char(to_date(bus_date,'YYYY/MM/DD'),'YYYY/MM/DD') --查询日期数据
,name
,age
from
users
最Java查询后最终的效果:
{
“retCode”: “0000”,
“retMsg”: “”,
“data”: {
“list”: [
{
“name”: “张三”,
“busDate”: “2022/06/20“,
“age”: 30
}
]
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/99582.html