mysql 删除固定时间的数据

zhxznu 2008-07-16 12:48:08
记录中A中有提交时间submitTime字段,要整理下数据,现在想删除每天0点到8点提交的记录,其他时间的记录保存,如何写命令?
希望是一个命令能删除每天的记录,不是一天天删除。由于是4.02的版本,不支持子查询,希望高手赐教!
...全文
101 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhxznu 2008-07-16
  • 打赏
  • 举报
回复
不好意思,ydage,我测试的时候没有用到time()这个函数,
我用这个命令:delete from 表名 where submitTime between '00:00:00' and '08:00:00'所以提示错误。
后来看到你的说明,,time(submitTime):取submitTime中的时间部分才明白你的意思,
不过我用delete from 表名 where time(submitTime) between '00:00:00' and '08:00:00',测试的时候,提示
time(submitTime)错误,我怀疑是time这个函数对于我这个MYSQL不支持,不过你给了我提示,我现在用

delete from consume where date_format(submitTime,'%T') between '00:00:00' and '08:00:00';

用date_format函数就可以了。谢谢你,

结贴给分!
ydage 2008-07-16
  • 打赏
  • 举报
回复
忘记说明了,time(submitTime):取submitTime中的时间部分
ydage 2008-07-16
  • 打赏
  • 举报
回复
#楼主测试过吗? 附上测试数据,你看下结果
CREATE TABLE `test0` (
`id` int(11) NOT NULL auto_increment,
`submitTime` datetime,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

INSERT INTO `test0` VALUES (1,'2008-07-12 21:36:41'),
(2,'2008-7-12 0:10:0'),(3,'2008-07-11 08:03:01'),(4,'2008-7-11 7:23:06');

#删除0-8点的数据
delete from test0 where time(submitTime) between '00:00:00' and '08:00:00'
WWWWA 2008-07-16
  • 打赏
  • 举报
回复
现在想删除每天0点到8点提交的记录:
早上0:8?用12小时制?
zhxznu 2008-07-16
  • 打赏
  • 举报
回复
submitTime是datetime类型,0000-00-00 00:00:00

楼上的命令between '00:00:00' and '08:00:00' 存在问题,

记录的提交时间都是2005-07-15 00:10:00这种类型,如果只是00:00:00' and '08:00:00',是找不到记录的
ydage 2008-07-16
  • 打赏
  • 举报
回复
delete from 表名 where time(submitTime) between '00:00:00' and '08:00:00'

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧