我想知道是否有可能在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";
?>