在mysql contact_details 表中,我有一个名为 created_date 的列。当我向该表插入任何新联系人时,我将日期和时间插入此created_date列。 日期和时间有点像这样:
6/19/2013 18:25
6/19/2013 18:25
10/10/2014 17:25
嗯,我有一个搜索表单,其中存在2个字段。
1)日期来自。
2)日期到。
此2提交的日期仅为提货日期(月/日/年)不是时间。现在我想根据这2个日期搜索数据。它可以只搜索日期或日期或两者。
1)日期自搜索日期从到今天日期。
2)日期将搜索所有数据,直到日期
3)如果两个日期都存在,那么它应该在 2日期之间返回数据
所以,我正在做的是:但它告诉我错误的结果。我该如何解决 ?
if(!empty($ad_datefrom)){
$getSearch .= "AND cd.created_date BETWEEN '$ad_datefrom' AND '$date' ";
}
if(!empty($ad_dateto)){
$getSearch .= "AND cd.created_date BETWEEN'$ad_dateto' AND '$date' ";
}
if(!empty($ad_datefrom) && !empty($ad_dateto)){
$getSearch .= "AND cd.created_date BETWEEN '$ad_datefrom' AND '$ad_dateto' ";
}
注意:
cd = contact_details Table.
created_date = created_date Column of contact_details Table.
$ad_datefrom = Date From field.
$ad_dateto = Date To Field.
$date = current date (m/d/y)
谢谢你:)
答案 0 :(得分:0)
MySQL想要的日期时间格式如'2014-12-24 23:59:59',使用date()
函数,date("Y-m-d H:i:s",$timestamp)
答案 1 :(得分:0)
$ ad_datefrom和$ ad_dateto采用字符串格式,因此无法使用between子句。使用这样的php日期转换它们:
$getSearch .= "AND cd.created_date BETWEEN '" . date("Y-m-d H:i:s", strtotime($ad_datefrom)) . "' AND '".date("Y-m-d H:i:s",strtotime($date))."' ";
$getSearch .= "AND cd.created_date BETWEEN '" . date("Y-m-d H:i:s", strtotime($ad_dateto))."' AND '".date("Y-m-d H:i:s",strtotime($date))."' ";