SQL语句中时间戳比对
===10-02更新
时间戳转时区 CONVERT_TZ(create_time,'+00:00','+07:00')
如果确定时间: DATE_ADD(end_effect,INTERVAL 8 HOUR)
转格式:DATE_FORMAT(CONVERT_TZ(pay_time,'+00:00','+07:00'),'%Y-%m-%d %H:%m:%s')
'%Y-%m-%d %H:%m:%s' ==> '2018-11-02 17:50:50'
今天做到一个需求:
Mysql字段格式是时间戳:查询出来需要转为字符串格式。
select DATE_FORMAT(reg_time,'%Y-%m-%d %H:%i:%s') AS time from u_user
而且需要做时间戳比对。不多说,直接看代码:
SELECT config_id,config_desc,validate,recharge_count,config_type,
gift_coin,true_coin,recharge_amt,insert_time,start_effect,end_effect
FROM s_recharge_config WHERE DATE_ADD(end_effect,INTERVAL 8 HOUR) >= '2018-01-16 16:33:16' AND configType = 2 ORDER BY recharge_amt
//查询时。我们服务器时间晚8小时。所以这里使用DATE_ADD函数
(关于时间戳转为字符串,看了网上好多的说法都是使用FROM_UNIXTIME函数。但是我用的时候 不能实现效果,反而在获取结果时。我用SimpleDateFormat的format方法出来的就是字符串格式的数据)
Map<String, Object> result = baseDAO.getBySQL(sql, paramMap);
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(result.get("start_effect"))