我正在研究露营地管理系统,并一直试图找出日期选择查询。
$ sdate是预订的开始日期 $ edate是预订的结束日期
我只是想找到这些日期之间当前没有保留的网站。 现在它运作得相当好,除非有人想要保留某人离开的同一天,它被认为是因为某人“在”该地点,但将在那天离开所以它不应该出现
日期格式为mm / dd / yyyy
数据库中的格式未设置为日期,设置为varchar,格式相同。
$searchSite= $wpdb->get_results("SELECT *
FROM wp_campground_sites
WHERE wp_campground_sites.id
NOT IN
(
SELECT wp_campground_sites.id
FROM wp_campground_sites
JOIN wp_campground_reservations
ON wp_campground_sites.id = wp_campground_reservations.site_id
WHERE
(
'$edate' between reservations.sdate and reservations.edate
OR
'$sdate' between reservations.sdate and reservations.edate
OR
reservations.sdate between '$sdate' and '$edate'
)
");
答案 0 :(得分:1)
您必须将varchar字符串更改为日期格式并比较
select date_format(str_to_date('12/31/2011', '%m/%d/%Y'), '%Y%m');
因为在使用date_formate函数将varchar数据类型转换为实际日期格式之前,您将要比较字符串和日期结果。