mysql 怎么一次性取出一天内每5分钟为一个时间点的所有数据
mysql备份:
mysqldump -u username -p dbname >backupname.sql
mysql恢复:
mysql -u root -p dbname <backupname.sql
所以你可以写个shell脚本,脚本中执行mysql备份命令,然后把shell脚本加入crontab定时任务中就可以完成每天自动备份数据库了
你是这个意思吧:查询这样的一条数据:存在另外一条数据的时间项和它的时间项相差在5分钟以内。
这个主要是处理日期函数,我用Oracle数据库做,
首先建立测试表:
create table test26
(
mydate date
)
然后插入测试数据:
insert all
into test26 values(to_date('2010-04-01 12:00:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-01 12:03:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-02 12:00:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-03 14:00:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-03 14:01:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-03 14:02:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-06 12:00:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-07 11:00:00','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-07 11:04:59','yyyy-mm-dd hh24:mi:ss'))
into test26 values(to_date('2010-04-08 12:00:00','yyyy-mm-dd hh24:mi:ss'))
select * from dual
然后查询这样的一条数据:存在另外一条数据和它相差在5分钟以内。
select to_char(t1.mydate,'yyyy-mm-dd hh24:mi:ss') from test26 t1
where exists
(
select * from test26 t2 where
((t1.mydate-t2.mydate)<(1/(24*12)) and t1.mydate>t2.mydate)
or ((t2.mydate-t1.mydate)<(1/(24*12)) and t2.mydate>t1.mydate)
and t1.mydate<>t2.mydate
)
order by t1.mydate
结果为:
TO_CHAR(T1.MYDATE,'YYYY-MM-DDHH24:MI:SS')
2010-04-01 12:00:00
2010-04-01 12:03:00
2010-04-03 14:00:00
2010-04-03 14:01:00
2010-04-03 14:02:00
2010-04-07 11:00:00
2010-04-07 11:04:59
不同数据库的日期处理函数不一样,还有什么问题给我留言,OK?
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)