私はキャンプ場管理システムに取り組んでおり、日付選択クエリを理解しようとしています。
$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'
)
");