【发布时间】:2019-01-11 01:07:47
【问题描述】:
我目前正在处理的数据库表中的日期字段是 varchar 形式,并以 dd.mm.yyyy 格式给出。
例如日期:03.02.2018
上面有屏幕
所以当我使用 ajax 发送数据时无法正常工作。
下面有代码
function clean($data) {
global $con;
$data = mysqli_real_escape_string($con, strip_tags($data));
return $data;
}
$start_date = clean($_POST['start']);
$end_date = clean($_POST['end']);
if (isset($start_date) && isset($end_date)) {
$get_date = "SELECT * FROM records WHERE reservations BETWEEN '$start_date' AND '$end_date' ";
}
开始日期和结束日期相同,例如今天或昨天。但是当日期不同时不起作用,例如开始日期:03.02.2018 结束日期:03.03.2018
最好的问候
谢谢。
【问题讨论】:
-
这不是数据库中的实际
date-字段,是吗? MySQL 以以下格式存储日期:YYYY-MM-DD. -
您不能在 MySQL 中将
BETWEEN用于varchar列类型,您需要一些解决方法。 -
另外,避免将日期存储为字符串,这是不好的做法
-
@Magnus Eriksson 是列不是日期格式,它是 varchar 存储日期/ MySQL 以相同的 DD.MM.YYYY 格式存储日期