1

SQL 查询 SELECT,ORDER 日期

嗨,我需要从我的表中选择日期,问题是我有超过 130 行并且每天都会增长。我想缩短它并在查询中选择与今天相等date=date("Y-m-d")的日期和从今天开始更大的日期。

它可以是今天的日期的变量,因为我使用日期选择在日期之间进行分页。我知道我可以使用时间戳,但我不知道如何在查询中实现它。

  $r = mysql_query("SELECT  date FROM yoman  ORDER BY date ASC,time ASC  ") 
            or die(mysql_error()); 

我希望你能理解,http: //attiatech.com/projects/tours/index.php?db=cmVsXzIwMTI=这是链接,试着选择 1.10.2012 看看打印了多少行,我有第二个视图分页选项,但我想在这个查询中过滤它。

4

4 回答 4

0

你在看这个吗:

set @dte=sysdate();

select sysdate()
SELECT  date 
FROM yoman  
where date>=@dte
ORDER BY date ASC,time ASC
于 2012-10-19T07:19:13.753 回答
0

我假设您将日期存储为字符串“Ymd”。

将其用作表列类型可能会更好:

http://dev.mysql.com/doc/refman/5.1/en/datetime.html

所以例如:

$startdate= date("Y-m-d", $day); 
$enddate= date("Y-m-d",strtotime("+1 day", $day)) - 1; 

获取一天的 SQL 如下所示:

SELECT * 
FROM yoman 
WHERE date BETWEEN $startdate AND $enddate 
ORDER BY date ASC,time ASC
于 2012-10-19T07:23:01.023 回答
0

如果您想要所有具有今天和未来日期的行,您可以直接使用没有 php 的 sql 查询,只需使用curdate()否则如果您使用sysdate() current_timestamp etc它也会检查时间并且您不想要它,因为如果您在上午 10 点启动查询,您不会在当天上午 10 点之前获得所有行...

SELECT date FROM yoman WHERE date >= CURDATE() ORDER BY date ASC, time ASC

于 2012-10-19T07:25:43.673 回答
-2
SELECT  date FROM yoman  ORDER BY date,time ASC 
于 2012-10-19T07:20:07.310 回答