我试图在PHP和SQL中的两个日期之间进行选择。但是,我的PHP日期打印如下:
July 1, 2017
和
July 30, 2017
问题是,在我选择的数据库中,日期存储如下
YYYY-MM-DD:
2017-07-01
和2017-07-30
我正在尝试进行查询,以便在两个日期之间进行选择:
SELECT dl.list_id, dl.id, dl.date, dl.list_name, dl.list_supplier, dls.reference, dls.mawb, dls.shipment, dls.kg
FROM driving_lists dl LEFT JOIN
driving_list_shipments dls
ON dl.list_id = dls.list_id
WHERE dl.deleted=0 AND dls.kg > 0 AND dl.date between 'FORMAT(July 01, 2017,'yyyy-MM-DD')' and 'FORMAT(July 30, 2017,'yyyy-MM-DD')'
ORDER BY dl.list_id
所以问题在于:
dl.date between 'FORMAT(July 01, 2017,'yyyy-MM-DD')' and 'FORMAT(July 30, 2017,'yyyy-MM-DD')'
如何通过将其转换为数据库使用的格式来选择两个日期?
答案 0 :(得分:0)
如果要在数据库中进行转换,则应使用str_to_date()
:
WHERE dl.deleted = 0 AND dls.kg > 0 AND
dl.date between str_to_date('July 01, 2017', '%M %d, %Y') and
str_to_date('July 30, 2017', '%M %d, %Y')
注意:dl.date
应作为日期存储在数据库中。
答案 1 :(得分:0)
尝试使用 date() php函数
喜欢这个
$date1='July 30, 2017';
$date1=date('Y-m-d',strtotime($date1));
$date2='July 1, 2017';
$date2=date('Y-m-d',strtotime($date2));
如果您打印$date1
和$date2
,它将显示为
"2017-07-30"
"2017-07-01"