Php 选择两个日期之间的数据?
我正在使用一个数据库来存储日志,其中有一列“date”,它保存日志插入的日期。日期的格式为“MM/DD/YY”。请任何人建议我如何在两个特定日期之间选择数据。例如,我尝试了以下方法:Php 选择两个日期之间的数据?,php,mysql,select,date,Php,Mysql,Select,Date,我正在使用一个数据库来存储日志,其中有一列“date”,它保存日志插入的日期。日期的格式为“MM/DD/YY”。请任何人建议我如何在两个特定日期之间选择数据。例如,我尝试了以下方法: $from_date = "01/01/12"; $to_date = "02/11/12"; $result = mysql_query("SELECT * FROM logs WHERE date >= " . $from_date . " AND date <= " . $to_date . "
$from_date = "01/01/12";
$to_date = "02/11/12";
$result = mysql_query("SELECT * FROM logs WHERE date >= " . $from_date . " AND date <= " . $to_date . " ORDER by id DESC");
while($row = mysql_fetch_array($result)) {
// display results here
}
$from_date=“01/01/12”;
$to_date=“2012年11月2日”;
$result=mysql\u query(“从日志中选择*,其中日期>=”$FROM\u date.”和date您需要在日期值“01/01/12”中添加单引号:
$from_date = "01/01/12";
$to_date = "02/11/12";
$result = mysql_query("SELECT * FROM logs WHERE date >= '" . $from_date . "' AND date <= '" . $to_date . "' ORDER by id DESC");
$from_date=“01/01/12”;
$to_date=“2012年11月2日”;
$result=mysql\u查询(“从日志中选择*,其中日期>=”“$FROM\u日期。””和日期使用BETWEEN
关键字:
"SELECT * FROM logs WHERE date BETWEEN '" . $from_date . "' AND '" . $to_date . "'
ORDER by id DESC"
您可以将字段强制转换为日期,然后在“开始日期”和“结束日期”之间进行选择
SELECT * FROM logs WHERE date STR_TO_DATE(date, '%m/%d/%Y') between STR_TO_DATE(from_date, '%m/%d/%Y') and STR_TO_DATE(to_date, '%m/%d/%Y')
问题的答案取决于用于存储日志
表中的日期
字段的数据类型
SQL(在您的例子中是MySQL)完全能够比较日期。通常会使用BETWEEN..AND..
运算符,但如果date
的类型为CHAR(或VARCHAR),则该运算符将无法正常工作-在这种情况下,您需要在比较之前将日期
字段转换为日期时间。将日期参数更改为Unix时间戳,然后进行比较。以下是代码:
$from_date = "2019/01/12";
$to_date = "2019/01/15";
$from_date_unix = strtotime($from_date);
$to_date_unix = strtotime($to_date);
$result = mysql_query("SELECT * FROM logs WHERE date >= " . $from_date_unix . " AND date <= " . $to_date_unix . " ORDER by id DESC");
while($row = mysql_fetch_array($result)) {
// display results here
}
$from_date=“2019/01/12”;
$to_date=“2019/01/15”;
$from\u date\u unix=strottime($from\u date);
$to\u date\u unix=strottime($to\u date);
$result=mysql\u query(“SELECT*FROM logs WHERE date>=”,$FROM\u date\u unix.”以及它将起作用的日期。您必须将参数设置为date(“”)
日期'$param'
或str\u to\u date()
或转换('$param','%y/%m/%d'))
…您是否考虑过使用真实日期列或将格式更改为YY/MM/DD
?如果我必须在两个日期之间找到两个日期……例如,从日志中选择*,其中date1和date2介于'。$FROM_Date.''和'。$to_Date.'@Sarfraz