改变我的WHERE查询取决于它是什么日子


Change my WHERE query depend on what day it is

我想知道是否有可能在WHERE查询中使用我的$。如果$今天是星期一,我希望我的WHERE是p650Wdat = 1(1代表星期一)And And tuesday是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";
?>

好的,所以你想把星期一匹配到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;
?>

那么你的查询应该可以工作

在where子句中使用:SQL:

WHERE DATENAME(dw, p660WDAT) = $today
MySQL:

WHERE DAYNAME(p660WDAT)= $today

函数Date(l)也将返回日期名称为Sunday, Monday…而不是1,2,3…

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

WHERE WEEKDAY(p660WDAT)+1 = $today;

PostgreSQL:

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

注:当然,您应该考虑转义值等。我并没有提到要给出更简洁的答案。

P.P.S.如果我理解正确的话,只需使用date('w')来获得星期几。

<?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";
?>