更改我的WHERE查询取决于它的日期

时间:2016-09-16 08:55:08

标签: php sql

我想知道是否可以在WHERE查询中使用我的$。 如果$今天是星期一,我希望我的WHERE是p650Wdat = 1(1代表星期一) 并且星期二将是2,依此类推。

$today = date("l");
<?php
$today = date("l");
//Establish connection to database
$host = "randomtext";
$conn = myacc");
$query = " Select * 
from P660F
where p660WDAT = $today
ORDER BY P660PRIO DESC";
?>

4 个答案:

答案 0 :(得分:1)

好的,所以你想要将星期一与1和星期二匹配为2等。为了简单和清晰,你真的应该在表格中使用相同的值作为变量但你可以将日期名称作为整数返回

<?php
$day_name = date("l");
$today = date('N', strtotime($day_name));
echo 'Today name is ' . $day_name .'<br>';
echo 'Today number is ' . $today;
?>

然后您的查询应该有效

答案 1 :(得分:0)

在where子句中使用它: SQL:

WHERE DATENAME(dw, p660WDAT) = $today

MySQL的:

WHERE DAYNAME(p660WDAT)= $today

你的函数Date(l)也会将日期名称作为星期日,星期一...而不是1,2,3 ...

返回

答案 2 :(得分:0)

取决于您的RDBMS,您可以使用不同的方式:  MySQL的:

WHERE WEEKDAY(p660WDAT)+1 = $today;

的PostgreSQL:

WHERE  EXTRACT(DOW FROM TIMESTAMP p660WDAT) = $today;

P.S。当然,你应该考虑逃避价值等等。我没有提及给出更清晰的答案。

P.P.S。如果我理解正确,只需使用日期('w')即可获得星期几。

答案 3 :(得分:0)

<?php
$day_name = date("l");
$today = date('N', strtotime($day_name));
echo 'Today name is ' . $day_name .'<br>';
echo 'Today number is ' . $today;


        $today = date("l");
        //Establish connection to database
        $host = "randomtext";
        $conn = myacc");
        $query = " Select * 
        from P660F
        where p660WDAT = $today


  ORDER BY P660PRIO DESC";
?>