例如: String hql = '' select count(*) from record where recordTime >=" +toDate(beginDateStr, hqlFormat) +" and recordTime <=" + toDate(endDateStr, hqlFormat);
注释:beginDateStr,endDateStr为日期格式的字符串,如:2013-07-06 13:35:23
hqlFormat为%Y-%m-%d %H:%i:%s
利用下面的方法将字符串日期格式转换成mysql下的日期格式。
/**
* 将日期转化成 mysql 的 str_to_date(date,'%Y-%m-%d-%H-%h-%i') 格式
* @param date 日期字符串
* @param hqlFormat mysql的日期格式,例如:'%Y-%m-%d-%H-%h-%i'
* @return
*/
private static String toDate(String date,String hqlFormat) {
StringBuffer bf = new StringBuffer();
bf.append("str_to_date('");
bf.append(date);
bf.append("','");
bf.append(hqlFormat);
bf.append("')");
return bf.toString();
}
date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串,
后面的 '%Y%m%d' 主要是将返回值格式化
例如:
mysql>SELECT FROM_UNIXTIME( 1249488000, '%Y%m%d' )
->20071120
mysql>SELECT FROM_UNIXTIME( 1249488000, '%Y年%m月%d' )
->2007年11月20
UNIX_TIMESTAMP(date)是与之相对正好相反的时间函数,date 可以是一个 DATE 字符串、一个 DATETIME字符串、一个 TIMESTAMP或一个当地时间的YYMMDD 或YYYMMDD格式的数字。
例如:
UNIX_TIMESTAMP(),mysql> SELECT UNIX_TIMESTAMP() ; (执行使得时间:当前时间)
->1249524739