永发信息网

php写的mysql查询30分钟内的文章命令应该怎么写呢?

答案:4  悬赏:30  手机版
解决时间 2021-01-07 12:05
  • 提问者网友:藍了天白赴美
  • 2021-01-06 20:52
php写的mysql查询30分钟内的文章命令应该怎么写呢?
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-01-06 22:06
首先看shijian是什么字段类型,如果是timestamp,则:
$sql = "select * from table_news where UNIX_TIMESTAMP(shijian) - UNIX_TIMESTAMP() < 1800";

而UXIN_TIMESTAMP(shijian)是shijian的timestamp
其中UNIX_TIMESTAMP()是当前时间的timestamp
两个数做减法,能算出还有多少秒到期,如果这个秒数小于1800(30分钟),就是30分钟内到期了。

补充:呵呵楼下你写的是SQL Server的语法,而不是MySQL
全部回答
  • 1楼网友:玩家
  • 2021-01-07 01:13
首先得看你shijian这个字段里面存的是时间戳还是字符串了
如果是时间戳就直接用当前时间加上30分钟就OK了
$now = time();
$time = time()+1800;
$sql = "SELECt * FROM table WHERe shijian > '$now' AND shijian < '$time'";
这个是30分钟内到期的
查询当天的也一样
大致就是算出今天第一秒和最后一秒的范围,但后去数据库里筛选
$string_time = date("Y-m-d", time());//返回今天的日期2009-11-5
$start_time = strtotime($string_time);//返回2009年11月5日0点0分0秒时间戳
$end_time = $start_time + 86400;//86400是24小时的秒数
$sql = "SELECt * FROM table WHERe shijian > '$start_time' AND shijian < '$end_time'";
这条语句就是查询当天的
以上是shijian字段存进时间戳的情况,如果是存的日期格式的字符串,可以用strtotime转换为时间戳,然后方法跟上面一样了
方法就是这样了,得自己尝试,注意,记得设置时区,不然,会相差八小时
date_default_timezone_set('PRC');
这样就很准确了
希望能帮到你!
  • 2楼网友:枭雄戏美人
  • 2021-01-07 00:37
假设你的表里的时间字段是时间戳类型,名字为 cometime
$time = strtotime(date("Y-m-d H:i:s"));
$time1 = strtotime(date("Y-m-d H:i:s",strtotime("+30 minute")));
$time2 = strtotime(date("Y-m-d H:i:s",strtotime("+1 day")));
$sql1 = "select * from tablename where shijian<".$time1." and shijian>".$time;//查询从现在开始30分钟后到期文章的sql语句
$sql2 = "select * from tablename where shijian<".$time2." and shijian>".$time;//查询从现在开始一天内到期的文章的sql语句
  • 3楼网友:一秋
  • 2021-01-06 23:06
标准答案:
30分钟内到期
select * from 表 where ABS(datediff(minute,shijian,getdate())<=30)
今天到期
select * from 表 where CONVERT(varchar(20), shijian, 110) =CONVERT(varchar(20), getdate(), 110)
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯