PHP MSSQL 使用“Where”来选择日期范围


PHP MSSQL use "Where" to select a date range

我正在尝试填充一个列表菜单,根据游戏日期,选择将在过去或将来

。我希望 1 个菜单根据

当前日期列出已玩过的游戏,1 个菜单列出尚未玩过的游戏。 基本上如果$gamedate>$daynow或$gamedate<=$daynow

我在网上查找了示例,但我的尝试都没有奏效。 也许我需要知道如何将$gamedate转换为 Unix 时间戳,但我尝试的所有方法都不起作用。我试过:strtotime,DateTime::,并使用"WHERE"和"between"来创建日期范围

$gamedate是从 MSSQL 数据库分配的,字段采用日期格式

我的想法是将$gamedate转换为 UNIX 时间戳并使用它来与 time() 进行比较。 我是否正确认为这是一个整数,因此使用">"或"<"会起作用? 我也对其他方式持开放态度。

<?PHP
$daynow=time()
$sql="Select convert(varchar(5), gamedate, 101) AS d, * WHERE gamedate>=$daynow ORDER BY gamedate ASC"
$stmt=sqlsrv_query($conn, $sql);
while ($row=sqlsvr_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
echo"this game has not yet been played";
}
?>

<?PHP
$sql="Select convert(varchar(5), gamedate, 101) AS d, * ORDER BY gamedate ASC"
$stmt=sqlsrv_query($conn, $sql);
while ($row=sqlsvr_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
$gamedate=$row['gamedate'];
$daynow=time();
if ($gamedate>$daynow){
echo"this game has not yet been played";}
elseif ($gamedate<=$daynow){
echo"this game has been played";}
}
?>

我发现的一切都是如何将时间戳隐藏为字符串

谢谢

检查一下:当 PHP 是您的主要语言时,在 SQL Server 数据库中存储日期/时间的首选格式是什么?我认为这会更有帮助,因为该查询与 MSSQL 相关