电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

如何实现日期比较 显示五天内日期


发布日期:2024/4/11
 

主要的论点是集中在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());

++

| TO_DAYS(NOW())|

++

| |

++

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

mysql>select TO_DAYS(NOW()) TO_DAYS(date_col) <= ;

出现结果

ERROR :Unknown column date_col in field first

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

mysql>select to_days(now()) to_days();

出现结果

++

|to_days(now()) to_days()|

++

| NULL|

++

啊?不会吧?这样也不行啊?

我接着试命令

mysql>select

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

mysql>select to_days(now()) ;

++

| to_days(now()) |

++

| |

++

OK万岁终于得到了我想要的结果呵呵 下面就是在PHP代码中用SELECT 查询了

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

下面是我的一个库的部分结构

CREATE TABLE infomess (

infoid int() NOT NULL auto_increment

topic varchar() NOT NULL

……

email varchar()

dateandtime datetime DEFAULT :: NOT NULL

PRIMARY KEY (infoid)

);

这里的DATEANDTIME是标准的日期格式然后我要查询天内的记录下面是SQL查询语句

$sql=select * from infomess where to_days(dateandtime) >= (to_days(now()) ) order by infoid desc limit $offset$psize;

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

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

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

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

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

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

上一篇:如何监控Hyper-V虚拟机流量?

下一篇:硬盘减肥扩容全攻略