MySQL 两个设定日期之间的当前日期

MySQL current date between 2 set dates

我正在进行的项目需要一些帮助。 有一个 table 有 2 个日期:date1 和 date2(更简单)

现在我需要显示当前日期在日期 1 和日期 2 之间的所有行。 我目前拥有的是:

$date = date(Y-m-d);
$sql = 'SELECT * FROM boekingen WHERE "$date" BETWEEN date1 AND date2';

但这不起作用。虽然如果我用 2017-01-06 替换 "$date" 它确实有效。现在我该如何解决这个问题? 提前致谢!

date() 上的手册在语法和参数两边使用引号方面都很清楚。

因为你有 none,PHP 假设你将它们预定义为 constants

Error reporting 会抛出以下内容:

Notice: Use of undefined constant Y - assumed 'Y' in /path/to/file.php on line x
Notice: Use of undefined constant m - assumed 'm' in /path/to/file.php on line x
Notice: Use of undefined constant d - assumed 'd' in /path/to/file.php on line x

示例来自示例 #4 date() 格式来自手册:

<?php
// Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
// Mountain Standard Time (MST) Time Zone

$today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
$today = date("m.d.y");                         // 03.10.01
$today = date("j, n, Y");                       // 10, 3, 2001
$today = date("Ymd");                           // 20010310
$today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
$today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
$today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
$today = date("H:i:s");                         // 17:16:18
$today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
?>

您需要在 date():

的参数周围加上引号
$date = date('Y-m-d');

并且你需要将你分配给$sql的字符串用双引号括起来,否则$date变量不会被展开。

$sql = "SELECT * FROM boekingen WHERE '$date' BETWEEN date1 AND date2";

What is the difference between single-quoted and double-quoted strings in PHP?

使用这样的东西

$date = date(Y-m-d);
$sql = 'SELECT * FROM boekingen WHERE STR_TO_DATE(\'$date'\', \'%m/%d/%Y\') BETWEEN date1 AND date2';

确保 date2 大于 date1。

date = date(Y-m-d);
$sql = 'SELECT * FROM boekingen WHERE "$date" 

这是你问题的代码。

在php中对字符串使用单引号不会扩展变量。

要么在 $date 周围使用双引号和单引号,要么连接 eg

 $sql = 'SELECT * FROM boekingen WHERE "' . $date .'" 

或sprintf

 $sql = sprintf('SELECT * FROM boekingen WHERE "%s", $date)