【发布时间】:2021-03-06 10:00:06
【问题描述】:
我有一个名为 Employees_Attendance 的表
{
Attend_ID | EMPloyee_Name | Employee_Department | From_date | To_date | Employee_ID
Employee_ID is Forigen_key To Employees Table Employee_ID Primary_Key
}
我正在尝试从Employees_attendance 获取所有记录取决于$Start_date 和$End_date
$Start_date 是文本框控件 从日历控件中获取他的文本
{<asp:TextBox ID="TextFrom" runat="server"></asp:TextBox> }
并且 $End_date 和 $Start_date 一样
我的问题: 当我按 $Start_date 和 $end_date 搜索时,返回的记录仅与 $start_date 匹配。
我想要的结果: 我需要获取特定员工的所有记录取决于Employees_attendance_tbl 中的日期 如上所述,在从文本框获取的 $Start_date 之间 而 $end_date 也是从 Text box 得到的
请看一下我的存储过程
{
USE [ASPCRUD]
GO
/****** Object: StoredProcedure [dbo].[DailyReportInfo] Script Date: 11/23/2020 4:32:05 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROC [dbo].[DailyReportInfo]
@Day_From datetime,
@Day_To datetime
AS
BEGIN
select Emp_Attend.Emp_Name, Emp_Attend.Dep_Name , Emp_Attend.Day_From , Emp_Attend.Day_To , Emp_Attend.Day_Type
from Emp_Attend
LEFT JOIN Employees on Emp_Attend.Emp_ID = Employees.EmpID
WHERE
CONVERT(date,Emp_Attend.Day_From) >= CONVERT(date,@Day_From) AND CONVERT(date,Emp_Attend.Day_From) <= CONVERT(date,@Day_From) OR
CONVERT(date,Emp_Attend.Day_To) >= CONVERT(date,@Day_To) AND CONVERT(date,Emp_Attend.Day_To) <= CONVERT(date,@Day_To)
END
}
【问题讨论】:
-
为什么要将
Emp_Attend.Day_From和Emp_Attend.Day_To转换为date?他们是varchar吗? -
因为我在 employee_attend tbl datetime 中插入了 start_date 和 end_date
-
我只想按日期搜索,所以我转换它!!
-
但
2020-01-01和2020-01-01T17:00:00都在2020-12-31之后。转换只会减慢查询速度。
标签: sql asp.net sql-server stored-procedures webforms