⑴ sql 时间间隔 可设如1分钟5分钟等,查询相关数据。
假如表名:tbl;时间字段名:dt
select * from tbl
where dt between cast('2012-10-10 12:01:00' as datetime) and cast('2012-10-11 11:05:00' as datetime) -- 在 2012.10.10.12:1:00 和 2012.10.11.14:5:00 之间
and datediff(minute,cast('2012-10-10 12:01:00' as datetime),dt) %7 = 0 --间隔7分钟
⑵ mysql如何查询时间间隔大于5分钟的数据(时间从现在往前推)
selectdtime,namefrom
(
selectname,dtime,rank,ptime,ptime2from(
selectcg_tmp.*,@rownum:=@rownum+1,
if(TIMESTAMPDIFF(MINUTE,@ptime,cg_tmp.dtime)<5,@rank:=@rank,@rank:=@rank+1)asrank,
@ptime2:=cg_tmp.dtimeasptime2,
if(TIMESTAMPDIFF(MINUTE,@ptime,cg_tmp.dtime)<5,@ptime=null,@ptime:=@ptime2)asptime
from
(
select*from`timerecord`orderbydtime
)cg_tmp,
(select@rownum:=0,@ptime:=null,@rank:=0,@ptime2:=null)a
)result
)a
whereptimeisnotnull
以前回答过类似的时间间隔问题。
⑶ SQL,按5分钟统计发送数量,SQL语句怎么写呀
最简单方法,把datetime转成float型(单位整数部分为天),然后乘24*60/5,就是整数部分是5分钟了,然后取整就行了
用这种方法做,随便你算几分钟的分组都能算
如:
select getdate(),cast(floor(cast(getdate() as float)*24*60/5)*5/60/24 as smalldatetime)
----------------------- -----------------------
2010-09-16 19:19:34.547 2010-09-16 19:15:00
(1 行受影响)
select getdate(),substring(convert(varchar,cast(floor(cast(getdate() as float)*24*60/5)*5/60/24 as smalldatetime),120),12,5)
----------------------- ----------
2010-09-16 19:23:47.340 19:20
(1 行受影响)
那么你的这个问题
select
substring(convert(varchar,cast(floor(cast(sendtime as float)*24*60/5)*5/60/24 as smalldatetime),120),12,5)
,sum(concount)
from 表名
group by substring(convert(varchar,cast(floor(cast(sendtime as float)*24*60/5)*5/60/24 as smalldatetime),120),12,5)
⑷ sql取离更新时间5分钟内的数据
sql取离更新时间5分钟内的数据
mysql 怎么一次性取出一天内每5分钟为一个时间点的所有数据
mysql备份:
mysqlmp -u username -p dbname > backupname.sql
mysql恢复:
mysql -u root -p dbname < backupname.sql
所以你可以写个shell脚本,脚本中执行mysql备份命令,然后把shell脚本加入crontab定时任务中就可以完成每天自动备份数据库了