Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在两个日期之间搜索_Sql_Date - Fatal编程技术网

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个不同的年份,而不是我输入的确切年份。