这是我的问题:
UPDATE Mst_Attendance
SET FNLogged=@FNLogged,
ANLogged=@ANLogged,LogTime=@LogTime,LogOuttime=@LogOuttime
WHERE EmployeeId=@Employee_id AND Atdate = CONVERT(VARCHAR(10), @AtDate, 101) AS [MM/DD/YYYY]
-- Convert(Datetime,@AtDate)
SELECT * FROM Mst_Attendance where Atdate=@AtDate and EmployeeId=@Employee_id
AS附近发生错误
答案 0 :(得分:2)
只需删除AS [MM/DD/YY]
代码段即可。您不需要它,并且它在WHERE子句中无效。
世界上你在数据库中将日期存储为字符串是什么?这只是个坏主意。你想截断时间部分吗?
答案 1 :(得分:1)
AS
用于为列或表提供别名;这里的AS
没有任何意义,因为那不是选择。
您已经通过CONVERT(VARCHAR(10), @AtDate, 101)
指定了格式,但这似乎也很奇怪;日期不是字符串。如果您在datetime
上进行匹配,请将所有内容保留为datetime
。
如果您实际上是在尝试删除时间部分(仅留下日期),请执行以下操作:a:不发送时间(在呼叫者处剪切),或b:执行以下操作:
set @date = cast(floor(cast(@date as float)) as datetime)