请教你一个SQL问题,
SELECT EmployeeCode, ChineseName, DATEDIFF(mm, OnDutyTime, GETDATE()) AS c,OnDutyTime
FROM EmployeeMsg
显示如下:
EmployeeCode ChineseName C OnDutyTime
001 A 12 2005-03-15
002 C 12 2005-03-22
。
GETDATE()为今天:2006-03-08
很明显C列显示的为错误的。后来发现只要一个规律:只要OnDutyTime 在2005-03-XX 都显示为C为12
当把:DATEDIFF(year, OnDutyTime, GETDATE()) AS cc 时显示的也不正确的。
不知为什么会是这样的?
SELECT EmployeeCode, ChineseName, DATEDIFF(mm, OnDutyTime, GETDATE()) AS c,OnDutyTime
FROM EmployeeMsg
显示如下:
EmployeeCode ChineseName C OnDutyTime
001 A 12 2005-03-15
002 C 12 2005-03-22
。
GETDATE()为今天:2006-03-08
很明显C列显示的为错误的。后来发现只要一个规律:只要OnDutyTime 在2005-03-XX 都显示为C为12
当把:DATEDIFF(year, OnDutyTime, GETDATE()) AS cc 时显示的也不正确的。
不知为什么会是这样的?
如记录A,若今天的时间应到2005-03-15时C列才显示12才是正确的。
或:DATEDIFF(year, OnDutyTime, GETDATE()) AS cc CC为1 才为正确的。
我如果要求查询每个人的进厂年龄,
select datediff(year,OnDutyTime,,getdate())
这样的查询很明显是不准确的。
不知有什么好的方法没有?