SQL查询SELECT,ORDER

时间:2012-10-19 07:10:23

标签: php sql select sql-order-by

SQL查询选择,订购日期

嗨,我需要从我的桌子中选择日期,问题是我有130行以上,每天都会增长。我想缩短它并在查询中选择今天等于date=date("Y-m-d")的日期和从今天起更大的日期。

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

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

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

4 个答案:

答案 0 :(得分:0)

你看这个:

set @dte=sysdate();

select sysdate()
SELECT  date 
FROM yoman  
where date>=@dte
ORDER BY date ASC,time ASC

答案 1 :(得分:0)

我假设您将日期存储为字符串“Y-m-d”。

尽管使用此表作为表列类型可能更好:

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:-2)

SELECT  date FROM yoman  ORDER BY date,time ASC