我有员工开始在动物园工作的日期,但我需要弄清楚他们在那里工作了多长时间。我已经完成了我的研究并知道我需要做什么,但我似乎无法弄清楚在DATEDIFF函数中合并NOW()函数的语法。我必须显示所有活跃的员工以及他们一直工作的年数(小数点后两位)。
我有两列,Joined(Date)和Resigned(日期,如果员工有效,则可能等于null)
所以,我们只想说有人在1996-09-18开始工作(yyyy / mm / dd)。
请帮忙,谢谢你。
答案 0 :(得分:1)
(假设您使用的是MySQL - 来自NOW()
函数)
我认为您需要使用COALESCE()
功能,因此在Resigned
的计算中使用了NOW()
或DATEDIFF()
:
DATEDIFF(COALESCE(Resigned, CURDATE()), Joined) AS days
所以,你可以这样:
(DATEDIFF(COALESCE(Resigned, CURDATE()), Joined)) / 365 AS years
或:
(DATEDIFF(COALESCE(Resigned, CURDATE()), Joined)) / 365.25 AS years
如果您想对极端情况和闰年非常准确,则需要进行更复杂的计算。
答案 1 :(得分:1)
年份有2位小数(假设是TSQL)
SELECT ROUND(
CONVERT(FLOAT,
DATEDIFF(day,joined,ISNULL(resigned,GETDATE()) ))/365,2)