hql相关
2016-07-13 14:49
267 查看
需求:需要查询一批订单,根据订单中时间,每隔24h之后执行某些操作。
实现:
1、查询符合要求的数据
1.1、从字段信息里截取出时间字段:substring(str,2,14) 。三个参数分别代表:字段名,从第几位开始截取(坐标从1开始),截取长度。
1.2、如何判断当前时间与订单中时间是否相隔24h了呢?我想的是两个时间差,24取余=0
1.2.1、两时间差,这里我用的TIMESTAMPDIFF(
SELECT MOD(TIMESTAMPDIFF(HOUR,'2016-06-29 16:00:00','2016-07-13 17:00:00'),24) from dual
unit:可选值:
FRAC_SECOND(微秒),SECOND(秒),MINUTE(分钟),HOUR(小时),DAY(天),WEEK (星期),MONTH(月),QUARTER(季度),YEAR (年)
1.2.2、当前时间获取方式:
select current_date(), current_time(), current_timestamp() from dual;
current_date():2016-07-13
current_time() :14:39:58
current_timestamp():2016-07-13 14:39:58
1.2.3、求绝对值,开平方,求余
select abs(t.p1),sqrt(t.p1),mod(t.p1, 2) from test t;
1.2.4、Floor(X) 向下取整 Floor(0.2)=0;Floor(15.8)=15
查询语句:
2、每隔1h从数据库查询一次放入redis列表
3、每隔10min执行从redis列表取数据进行相关操作
实现:
1、查询符合要求的数据
1.1、从字段信息里截取出时间字段:substring(str,2,14) 。三个参数分别代表:字段名,从第几位开始截取(坐标从1开始),截取长度。
1.2、如何判断当前时间与订单中时间是否相隔24h了呢?我想的是两个时间差,24取余=0
1.2.1、两时间差,这里我用的TIMESTAMPDIFF(
unit
,datetime_expr1,
datetime_expr2)。unit取hour。
SELECT MOD(TIMESTAMPDIFF(HOUR,'2016-06-29 16:00:00','2016-07-13 17:00:00'),24) from dual
unit:可选值:
FRAC_SECOND(微秒),SECOND(秒),MINUTE(分钟),HOUR(小时),DAY(天),WEEK (星期),MONTH(月),QUARTER(季度),YEAR (年)
1.2.2、当前时间获取方式:
select current_date(), current_time(), current_timestamp() from dual;
current_date():2016-07-13
current_time() :14:39:58
current_timestamp():2016-07-13 14:39:58
1.2.3、求绝对值,开平方,求余
select abs(t.p1),sqrt(t.p1),mod(t.p1, 2) from test t;
1.2.4、Floor(X) 向下取整 Floor(0.2)=0;Floor(15.8)=15
查询语句:
SELECT o.partnerOrderId,o.DVAuthMethod,DVAuthKey,o.DVAuthValue, MOD(TIMESTAMPDIFF(HOUR,substring(o.dvAuthValue,2,14),current_timestamp()),24) FROM Orders o WHERE o.source='aliyun' and (o.dvAuthMethod = 'FILE' or o.dvAuthMethod ='DNS') and o.preRemove != 1 and substring(o.dvAuthValue,2,8)!=current_date()
2、每隔1h从数据库查询一次放入redis列表
3、每隔10min执行从redis列表取数据进行相关操作
相关文章推荐
- TIMESTAMP和DATETIME哪个好
- sql2008 hql语句翻译过来的分页语句介绍
- oracle SCN跟TIMESTAMP之间转换
- C#更新SQLServer中TimeStamp字段(时间戳)的方法
- MySQL 5.6 中 TIMESTAMP有那些变化
- MySQL 5.6 中TIMESTAMP with implicit DEFAULT value is deprecated错误
- mysql之TIMESTAMP(时间戳)用法详解
- MySQL timestamp自动更新时间分享
- Sqlserver timestamp数据类使用介绍
- mysql多个TimeStamp设置的方法解读
- Java中Date,Calendar,Timestamp的区别以及相互转换与使用
- MySQL 5.6 中的 TIMESTAMP 和 explicit_defaults_for_timestamp 参数
- Mysql中的Datetime和Timestamp比较
- MySQL错误TIMESTAMP column with CURRENT_TIMESTAMP的解决方法
- MySQL 5.6 中 TIMESTAMP 的变化分析
- mysql 数据类型TIMESTAMP
- 微信公众号支付之坑:调用支付jsapi缺少参数 timeStamp等错误解决方法
- 在Java中String和Date、Timestamp之间的转换
- (Hibernate3+)HQL转SQL
- Android中时间标签起点