Sql 在两个日期之间搜索
我目前正在使用此代码在我的数据库中的两个日期之间进行搜索:Sql 在两个日期之间搜索,sql,date,Sql,Date,我目前正在使用此代码在我的数据库中的两个日期之间进行搜索: SELECT * FROM reports WHERE user_name = '$valueToSearch' AND work_date BETWEEN '$startDate' AND '$endDate' ORDER BY id DESC; 去年,它在搜索时工作得很顺利,但是当我的数据库由不同的日期输入填充时,我尝试在日期之间搜索,它输出所选日期加上去年的输入和所选日期 示例:当我选择2021年12月5日-2021
SELECT *
FROM reports
WHERE user_name = '$valueToSearch' AND
work_date BETWEEN '$startDate' AND '$endDate'
ORDER BY id DESC;
去年,它在搜索时工作得很顺利,但是当我的数据库由不同的日期输入填充时,我尝试在日期之间搜索,它输出所选日期加上去年的输入和所选日期
示例:当我选择2021年12月5日-2021年26月5日时,它显示从2020年12月5日到2020年26月5日以及从2021年12月5日到2021年26月5日
为什么会这样?您能否显示正在运行的确切查询,而不仅仅是带有变量插入的查询?您使用的数据库管理系统和版本是什么?请显示表模式的相关子集-工作日期的列类型特别重要。
$startDate
和$endDate
是如何格式化的?它们是否使用您建议的值来字符串变量?搜索结果是否包含从2021-05-26开始的日期,还是从2021-05-25结束?$valueToSearch=$\u POST['valueToSearch'];-“列表框由员工姓名组成”$startDate=$\u POST['dteFrom'];-“日期选择器1”$endDate=$\u POST['dteTo'];-“日期选择器2”$query=“从报告中选择*,其中用户名=“$valueToSearch”,工作日期介于“$startDate”和“$endDate”之间,顺序为id DESC”$res_data=mysqli_query($conn,$query);听起来你犯了一个错误,把日期存储为strings@JonathanLeffler-是的,它们都是字符串变量。搜索结果显示了我输入的确切月份和日期,但它显示了2个不同的年份,而不是我输入的确切年份。