我有一张表"数据" varchar中的列
和价值" 21/10 / 2017"
现在尝试查询时如下:
Date
此查询返回0,但是如果使用随机字符串更改数据,例如" dog"并使用dog替换mysql中的数据查询工作正常,但我需要的日期不是狗。
如果使用$data = mysqli_real_escape_string($bd, date("j/m/y"));
$result = mysqli_query($bd, "SELECT * FROM tracking where data='".$data."'");
thw查询工作原因么?
答案 0 :(得分:1)
您在date
中使用了错误的date format。您的日期为j/m/y
,其格式为 d / mm / yy ,例如21/10/17
但您在数据库中的日期/字符串格式为 dd / mm / yyyy 。
要获得完整的4位数版本的年份,您需要使用Y
代替y
,即
$data = mysqli_real_escape_string($bd, date("j/m/Y"));
注意:您可能还有月份和日期格式错误 - 您在PHP中使用单位数日和2位数月份表示(例如1/01/17而不是01/01/17)但您的字符串可能使用完整的2位数 - 我们无法在您的日期示例中说明......在这种情况下,您将需要:
$data = mysqli_real_escape_string($bd, date("d/m/Y"));
答案 1 :(得分:1)
我看到您使用j/m/y
,根据date手册y
返回的年份包含最后2位数字,而非4位数字,因此请使用Y
。< / p>
但说实话,您必须将日期存储在date
,datetime
或timestamp
类型中,而不是varchar
中。