送分30,如何取库中存放超过一个月的记录.

phpcool 2003-12-05 02:29:21
其中.库中的字段date是截取unix时间格式.其sql语句如何写??
...全文
81 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2003-12-07
  • 打赏
  • 举报
回复
你把事情弄复杂了,你使用了int类型保存日期而不是用datetime类型。这样强大的mysql日期处理函数就不能直接使用了。不过你可以用form_unixtime转换一下。
select FROM_UNIXTIME(1070587078),ADDDATE(FROM_UNIXTIME(1070587078),INTERVAL 1 MONTH)

使用int类型保存日期,取得的结果如用php进行处理当然可以。但是对每一个都要处理一下,开销是可想而知的。而使用mysql日期处理函数得到的已是处理好的结果直接使用即可。

运行时:mysql是编译后的机器指令直接执行,而php是伪编译指令解释执行。明显的前者的效率高于后者。
Jatic 2003-12-06
  • 打赏
  • 举报
回复
select * from send_record where date < DATE_ADD(NOW(),INTERVAL '-1' MONTH )
cdm11cn 2003-12-05
  • 打赏
  • 举报
回复
你要把unix时间用时间函数转化成标准的时间在进行查询
phpcool 2003-12-05
  • 打赏
  • 举报
回复
问题结了一定给分...
phpcool 2003-12-05
  • 打赏
  • 举报
回复
有一条记录的date值为1070587078(即2003年12月05日 09时17分),然后我把时间调到2004-01-7日.
语句:select * from send_record where (curdate()-date)>30
语句:select * from send_record where ADDDATE(date,INTERVAL 1 MONTH )<NOW()
记录都不显示???
xuzuning 2003-12-05
  • 打赏
  • 举报
回复
ADDDATE(date,INTERVAL 1 MONTH )<NOW()
cdm11cn 2003-12-05
  • 打赏
  • 举报
回复
是的,这样就很清楚了,时间减1下就出来时间差了,你所选的字段就可以选出来了
phpcool 2003-12-05
  • 打赏
  • 举报
回复
curdate()是取当前时间截的日数?
cdm11cn 2003-12-05
  • 打赏
  • 举报
回复
看错不好意思
select field from table where (curdate()-time)>30;
cdm11cn 2003-12-05
  • 打赏
  • 举报
回复
建立1个字段,每当插入1个记录时就插入当前时间,比如字段time.
select field from table where (curdate()-time)<=30;

21,891

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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