通行证: 用户 密码 域名空间  下载中心 社区论坛 信息公告 my小屋
联系我们
设为首页
加入收藏

 

qq,asp,php,jsp,xml,sql,.net,编程 程序 网页图象 建站经验 私服
首页 | 新闻资讯 | 编程开发 | 网页设计 | 图形图象 | 网络媒体 | 网站模板 | 数 据 库 | 投稿
论坛 | 操作系统 | 系统优化 | 网络安全 | 黑客技术 | 硬件学堂 | 硬件报价 | 服 务 器 | 地图
专题 | 应用软件 | 聊天通讯 | q q 专栏 | 建站经验 | 在线工具 | 站长club | 注 册 表 | 旧版
社会 | 游戏娱乐 | 设计欣赏 | 疑难解答 | 社区论坛 | 韩国素材 | 素材图库 | 广告服务 | 服务
当前位置:首页>>在线服务>>疑难解答>>正文 新版上线![旧版]
注:打开慢时请稍等

如何实现日期比较,暨实现显示5天内,显示10天内的记录

http://www.iyit.net  日期:2006-5-3 19:23:28  来源:  点击:
参加讨论】 前几天发了一张帖子,就是关于显示5天内这种日期比较,

http://www.oso.com.cn/forum/read.php?theme_id=7459

主要的论点是集中在select something from table
where to_days(now()) - to_days(date_col) <= 5; 上,我试验了半天,结果还是出错,今天看了mysql的函数,终于出来了结果,不敢独享,贴出来供大家研究,(虽然技术含量不高,别扔我柿子就行,呵呵)

mysql的to_days(date)函数是这样说明的:
传回date到公元0年的总日数,我测试了一下
mysql>select to_days(now(0));
+--------------------------+
| to_days(now()) |
+--------------------------+
| 730839 |
+--------------------------+

出来的是当前时间距离公元0年的总日数,接着我试着用上面的语句测试;

mysql>select to_days(now()) - to_days(date_col) <= 5;
出现结果:
error 1054:unknown column 'date_col' in 'field first'

此路不通了,我就试着直接把5代到date_col里去

mysql>select to_days(now()) - to_days(5);
出现结果:
+---------------------------+
|to_days(now()) - to_days(5)|
+---------------------------+
| null |
+---------------------------+

啊?不会吧?这样也不行啊?
我接着试命令
mysql>select 。。。。

突然猛的想到,嘿嘿,to_days(now())出来的是整数,我直接跟整数运算就行了,何必再to_days(date)呢?马上试验

mysql>select to_days(now()) - 5;
+--------------------------+
| to_days(now()) -5 |
+--------------------------+
| 730834 |
+--------------------------+


ok,万岁,终于得到了我想要的结果,呵呵 下面就是在php代码中用select 查询了

我存数据库向来的习惯就是dateandtime用now()直接赋值,显示的时候不用格式化,直接取出来就能用,

下面是我的一个库的部分结构
create table infomess (
infoid int(11) not null auto_increment,
topic varchar(255) not null,
……
email varchar(50),
dateandtime datetime default '0000-00-00 00:00:00' not null,
primary key (infoid)
);


这里的dateandtime是标准的日期格式,然后我要查询5天内的记录,下面是sql查询语句
$sql="select * from infomess where to_days(dateandtime) >= (to_days(now()) - 5) order by infoid desc limit $offset,$psize";

就要一个where to_days(dateandtime) >= (to_days(now()) - 5)就够了 后面的是另外的,这里的5可以设为一个变量

where to_days(dateandtime) >= (to_days(now()) - $limitdays)

然后$limitdays可以用get方式传递(多数是有get方式传递)

在你的php后面跟上?limitdays=5就行了 显示10天内也一样,$limitdasy改成10就行了

以上是利用mysql函数得到这样的结果,以上的结果都经过测试,因为时间匆忙,如果代码有什么问题,请跟帖提出,谢谢


还有朋友说利用unix戳记来得到这样的结果,请问哪位写过这样的代码,贴点出来,供大家参考比较,也可以测试判断一下php函数还是mysql函数实现的效率高


编辑:黑鹰 [发送给好友] [打印本页] [关闭窗口] [返回顶部]
上一篇:mysql中如何存取二进制文件
下一篇:使用sql server 7.0建立一个安全的数据库的最好方法是什么?
转载请注明来源:www.iyit.net
特别声明: 本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。

 相关文章
最新更新 热点排行 推荐新闻
exeplorer.exe错误的问题的总结、解决
哪些数据库是免费的?                
如何实现mysql中的用户管理?         
在存储过程中使用use database       
怎样在vc、delphi中使用mysql(mysql o
快速安装windows操作系统独家秘籍
30秒清除windows系统所有垃圾
系统盘符错乱的解决方案
由windows远程桌面想到的复制粘贴问题
不输密码照样登陆操作系统
完美解决一个事件激活多个函数(2)
初学javascript之cookie篇(译)
javascript对象与数组参考大全
用javascript 实现的dual listbox
javascript版的日期输入控件
qq密码被盗怎么办!我教你找回密码
winrar将推出免费正版序列号!
轻易破解winrar,winzip密码
备份软件ghost使用教程
xp中重新安装或修复ie6的三种方法
让winrar汗颜的压缩软件uharc
ghost批处理命令用法详解
qb这样拿!免费获取qb方法剖析
如何控制我的电脑只允许登录我自己的q
qq2006 beta3隆重发布 实用功能一一奉
exeplorer.exe错误的问题的总结、解决
快速安装windows操作系统独家秘籍
30秒清除windows系统所有垃圾
系统盘符错乱的解决方案
由windows远程桌面想到的复制粘贴问题
不输密码照样登陆操作系统
windows下的虚拟主机设置全功略
windows操作系统完美维护技巧
ghost备份问题精彩解决方法集锦
菜鸟学电脑之端口基础知识
qq号码激活的常见问题及案例分析 
 友情链接
设置首 页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
copyrights © 2004-2006 iyit.net all rights reserved.
网站合作、广告联系qq:147007642、466949678
易特网络技术 点击这里给我发消息