我有一个表 reservasi
,其结构数据如下:
id_reservasi
package_name
<- varchardate_check_in
<- varchar 格式 (d-m-Y)time_check_in
<- varchar 格式 (h:i:s)价格
<- varchar
我想从以前的数据 reservasi
到指定时间之前的日期和时间之间选择带有过滤器的数据。
现在,我使用这个 sql 查询:
SELECT SUM(price) AS total
FROM reservasi
WHERE date(str_to_date(date_check_in,'%d-%m-%Y')) BETWEEN date(str_to_date('$date_check_in_rekap','%d-%m-%Y')) AND date(str_to_date('$date_now','%d-%m-%Y')
AND STR_TO_DATE(time_check_in, '%H:%i:%s') BETWEEN STR_TO_DATE('$time_check_in_rekap', '%H:%i:%s') AND STR_TO_DATE('$time_now', '%H:%i:%s')
但是它没有显示任何数据...
如何正确使用BETWEEN
?
最佳答案
编辑,PDO 版本:
$cek_pembelian=$this->pdo->prepare("
SELECT
SUM(netto_bersih) AS netto_beli,
SUM(jumlah_dibayar) AS rupiah_beli
FROM p_penerimaan_tbs
WHERE str_to_date(CONCAT(tanggal,' ',jam_keluar) ,'%d-%m-%Y %H:%i:%s')
BETWEEN str_to_date(:datetime_start ,'%d-%m-%Y %H:%i:%s') AND now()
");
$cek_pembelian->execute(array(
':datetime_start'=>$tanggal_rekap .' '. $jam_rekap
));
这就是你想要我想的?
MySQL 5.6 架构设置:
查询 1:
SELECT SUM(price) AS total
FROM t
WHERE str_to_date(CONCAT(date_check_in,' ',time_check_in) ,'%d-%m-%Y %H:%i:%s')
BETWEEN '2017-01-24 18:20:33' AND now()
Results :
| total |
|-------|
| 300 |
关于php - 如果表中的日期和时间具有不同的字段,如何使用 BETWEEN 日期和时间 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43834332/