求教大神,关于date时间类型转换为字符串的问题

程序猿-小李 2016-08-23 09:15:27
问题在下面,贴代码先
这是sql语句,mapper
<select id="myqrcodelist" parameterType="int" resultType="java.util.Map">
SELECT q.QRpic,p.address,p.productCode,p.productName,p.productId
,f.companyName,f.mobilePhone,p.Qrdate
FROM ap_products p
LEFT JOIN ap_qrrecords q
ON p.productId=q.productId
LEFT JOIN ap_farmermember f
ON p.memberId=f.f_memberId
WHERE p.productId=#{productid}
</select>

这是dao
	/**
* 农户我的生成码
* @param memberid
* @return
*/
public List<Map<String, Object>> shengchengma(int memberid);

这是servie
/**
* 农户我的生成码
* @param memberid
* @return
*/
public List<Map<String, Object>> shengchengma(int memberid){
return productDao.shengchengma(memberid);
}

这是接口代码
/**
* 农户我的生成码
*
* @param response
* @param memberId
* @param orderDirection
* @param q
* @param c
*/
@RequestMapping("/myGeneratedCode")
public void myGeneratedCode(HttpServletResponse response, ProductsEntity p, Integer memberId) {
System.out.println("农户我的生成码");
JSONObject json = new JSONObject();
try {
Map<String, Object> paramters = new HashMap<String, Object>();
paramters.put("memberId", memberId);
List<Map<String, Object>> obj = productService.shengchengma(memberId);
if (obj != null) {
json.put("code", "0");
json.put("msg", "SUCESS");
json.put("obj", obj);

} else {
json.put("code", "200");
json.put("msg", "没有农户我的生成码");
}
} catch (Exception e) {
json = exception(json, e);
}
getPrint(response, json.toString());
}

这是运行接口地址显示的时间字段
"Qrdate":{"nanos":0,"time":1471841646000,"minutes":54,"seconds":6,"hours":12,"month":7,"year":116,"timezoneOffset":-480,"day":1,"date":22}

下面实体类生成时间是date类型,我的问题是能不能给他转成YYYY-MM-DD格式的,你们看到了,这个接口只是用sql查询出来数据,然后放在了集合里,然后运行接口地址显示sql查询的数据字段,我想转换格式的话,是不是要在sql语句中修改,该怎么办呢,也百度不少,可就是无法真正解决,求大神,我QQ1365251230
/**
*
* @author hmq 二维码记录表
*/
public class QRrecordsEntity implements Serializable {

private Integer QRId;// 主键ID
private Integer productId;// 产品ID
private String QRcode;// 二维码信息串
private String QRpic;// 二维码图片
private Integer sequenceNo;// 顺序号
private Integer status;// 是否启用1:已删除0:正常
private Integer operationId;//
private Date Qrdate;//二维码生成时间
...全文
931 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
云墨浅殇 2017-06-05
  • 打赏
  • 举报
回复
SELECT q.QRpic,p.address,p.productCode,p.productName,p.productId ,f.companyName,f.mobilePhone,CAST(p.Qrdate AS CHAR(20)) Qrdate FROM ap_products p LEFT JOIN ap_qrrecords q ON p.productId=q.productId LEFT JOIN ap_farmermember f ON p.memberId=f.f_memberId WHERE p.productId=#{productid}
小灯光环 版主 2016-08-23
  • 打赏
  • 举报
回复
引用 6 楼 qq_34465759 的回复:
[quote=引用 5 楼 wlwlwlwl015 的回复:] 如果你用的是mybatis的话就把实体Bean里的时间类型换成String,然后具体格式通过数据库的时间函数进行格式化就可以了,比如sqlserver这样格式化:
就是mybatis,可是刚接触,用的都是别人搭建好的。我的sql语句也贴在上面了,能看一下吗,怎么改,没写过,所以不会[/quote] <select id="myqrcodelist" parameterType="int" resultType="java.util.Map">         SELECT q.QRpic,p.address,p.productCode,p.productName,p.productId         ,f.companyName,f.mobilePhone,p.Qrdate         FROM ap_products p         LEFT JOIN ap_qrrecords q         ON p.productId=q.productId         LEFT JOIN ap_farmermember f         ON p.memberId=f.f_memberId         WHERE p.productId=#{productid}     </select>
引用 6 楼 qq_34465759 的回复:
[quote=引用 5 楼 wlwlwlwl015 的回复:] 如果你用的是mybatis的话就把实体Bean里的时间类型换成String,然后具体格式通过数据库的时间函数进行格式化就可以了,比如sqlserver这样格式化:
就是mybatis,可是刚接触,用的都是别人搭建好的。我的sql语句也贴在上面了,能看一下吗,怎么改,没写过,所以不会[/quote] SELECT q.QRpic,p.address,p.productCode,p.productName,p.productId ,f.companyName,f.mobilePhone,CONVERT(varchar(20), p.Qrdate, 20) AS Qrdate FROM ap_products p ...... 这是sqlserver的写法,其它数据库你看它们自己的时间转换函数,套一下总会的吧!
bree06 2016-08-23
  • 打赏
  • 举报
回复
引用 4 楼 qq_34465759 的回复:
[quote=引用 2 楼 bree06 的回复:] Qrdate定义为String, sql语句中format成你想要的格式
要改一下实体类吗,改成string,然后sql语句怎么foemat,我新人,不太会啊,光说方法。。。。大神[/quote] QRrecordsEntity.java中private Date Qrdate; 改为private String Qrdate; mapper改为
<select id="myqrcodelist" parameterType="int" resultType="java.util.Map">
        SELECT q.QRpic,p.address,p.productCode,p.productName,p.productId
        ,f.companyName,f.mobilePhone,date_format(p.Qrdate, '%Y-%m-%d') as Qrdate
        FROM ap_products p
        LEFT JOIN ap_qrrecords q
        ON p.productId=q.productId
        LEFT JOIN ap_farmermember f
        ON p.memberId=f.f_memberId
        WHERE p.productId=#{productid}
    </select>
程序猿-小李 2016-08-23
  • 打赏
  • 举报
回复
引用 5 楼 wlwlwlwl015 的回复:
如果你用的是mybatis的话就把实体Bean里的时间类型换成String,然后具体格式通过数据库的时间函数进行格式化就可以了,比如sqlserver这样格式化:
就是mybatis,可是刚接触,用的都是别人搭建好的。我的sql语句也贴在上面了,能看一下吗,怎么改,没写过,所以不会
小灯光环 版主 2016-08-23
  • 打赏
  • 举报
回复
如果你用的是mybatis的话就把实体Bean里的时间类型换成String,然后具体格式通过数据库的时间函数进行格式化就可以了,比如sqlserver这样格式化:
程序猿-小李 2016-08-23
  • 打赏
  • 举报
回复
引用 2 楼 bree06 的回复:
Qrdate定义为String, sql语句中format成你想要的格式
要改一下实体类吗,改成string,然后sql语句怎么foemat,我新人,不太会啊,光说方法。。。。大神
程序猿-小李 2016-08-23
  • 打赏
  • 举报
回复
引用 1 楼 freekaiQaQ 的回复:
http://blog.sina.com.cn/s/blog_68f4b9f201013vql.html
mysql日期和字符相互转换方法
date_format(date,'%Y-%m-%d')    -------------->oracle中的to_char();
str_to_date(date,'%Y-%m-%d')     -------------->oracle中的to_date();
百度过,可是他没说明白,我的变量,我的字段放在哪,这个方法怎么用也没说
bree06 2016-08-23
  • 打赏
  • 举报
回复
Qrdate定义为String, sql语句中format成你想要的格式
freekaiQaQ 2016-08-23
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_68f4b9f201013vql.html
freekaiQaQ 2016-08-23
  • 打赏
  • 举报
回复
实体类Qrdate字段改成String 类型 sql语句 <select id="myqrcodelist" parameterType="int" resultType="java.util.Map"> SELECT q.QRpic,p.address,p.productCode,p.productName,p.productId ,f.companyName,f.mobilePhone,date_format(p.Qrdate, '%Y-%m-%d') as Qrdate 这里要注意一下取个别名,对应实体类的字段(实际上是对应set方法后面的 首字母小写的名称,setQrdate()) FROM ap_products p LEFT JOIN ap_qrrecords q ON p.productId=q.productId LEFT JOIN ap_farmermember f ON p.memberId=f.f_memberId WHERE p.productId=#{productid} </select>

51,397

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧