【问题标题】:SQL Query in PHP datePHP日期中的SQL查询
【发布时间】:2015-04-01 14:38:40
【问题描述】:

我在 PHP 中的 Sql 查询有问题:

如果我这样做:

$result = mssql_query("SELECT xx FROM x JOIN x ON x WHERE x = '".$var1."' 
AND x BETWEEN '20150401 00:00:00' AND '20150401 23:59:59' ")

这是工作

但如果我这样做:

$day=date("d/m/Y",time());
$exploDate = explode("/", $day);
$dateStart = $exploDate[2].$exploDate[1].$exploDate[0]." 00:00:00";
$dateEnd = $exploDate[2].$exploDate[1].$exploDate[0]." 23:59:59";
$result = mssql_query("SELECT xx FROM x JOIN x ON x WHERE x = '".$var1."' 
AND x BETWEEN '".$dateStart."' AND '".$dateEnd."' ")

这样不行!

我不明白为什么
你有什么想法吗?

谢谢

【问题讨论】:

  • 您真的是指“FROM x JOIN x”吗?如果是 MySQL,为什么要命名为 mssql_query - 非常令人困惑。
  • 回显或 var_dump 您的变量,其中一个或多个可能不是您认为的那样。
  • 在调用查询之前尝试使用echo $dateStartecho $dateEnd 以查看您输入的值是否正确。

标签: php mysql sql date between


【解决方案1】:

KISS Principle.

date('Y-m-d 00:00:00')."' AND '". date('Y-m-d 23:59:59')

$today = date('Y-m-d');
// ...
... "BETWEEN '" . $today . " 00:00:00' AND '" . $today . " 23:59:59'"

【讨论】:

  • 这适用于第一个查询的日期格式吗?他的原始格式似乎将年、月和日卡在一起,没有分离。
  • date() 函数有一个手册。您可以使用date("Ymd") 以及 - 一旦您阅读手册 - 甚至可以生成“2015 年是恋人之年!”如果你愿意:echo date('Y \Y\e\a\r \o\f \l\o\v\e\r\s');.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多