MySQL之from_unixtime函数
一、from_unixtime的语法及用法
(1)语法:from_unixtime(timestamp ,date_format)
即from_unixtime(时间戳 ,日期格式
参数说明
timestamp :时间戳,可为一串数字,也可为字段。
date_format:时间格式,不填默认为%Y-%m-%d %H:%i:%s的格式。
(2)用法:将时间戳转为指定日期格式。
实例
```sql
SELECT FROM_UNIXTIME(( TIMESTAMP ), "%Y-%m-%d %H:%i:%s" ) AS TIMESTAMP,
realtimevalue
FROM
table_name
问题
在数据量过大的时候FROM_UNIXTIME会影响sql的查询效率,时间会很长。
解决:
1.时间戳在代码中转换
public static String stampToDate(String s) {
String res;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
long lt = new Long(s);
Date date = new Date(lt * 1000);
res = simpleDateFormat.format(date);
return res;
}
2.嵌套查询,格式化放到外层转换
SELECT FROM_UNIXTIME(( a.TIMESTAMP ),
"%Y-%m-%d %H:%i:%s"
) AS TIMESTAMP
FROM
( SELECT TIMESTAMP, realtimevalue FROM table_name ORDER BY TIMESTAMP DESC LIMIT 1 ) AS a