我使用MySQL.我有一个数据库,里面有关于员工的数据:姓名、雇佣日期(年-月-日).我想在工作的第一个月工作几天.月份有不同的天数,我想不出该怎么做.
我认为TIMESTAMPDIFF()函数可能有用,但我找不出正确的语法. 我是一个SQL初学者,希望您能忍耐一下.
我使用MySQL.我有一个数据库,里面有关于员工的数据:姓名、雇佣日期(年-月-日).我想在工作的第一个月工作几天.月份有不同的天数,我想不出该怎么做.
我认为TIMESTAMPDIFF()函数可能有用,但我找不出正确的语法. 我是一个SQL初学者,希望您能忍耐一下.
如果您有一个名为hiredate
的列,类型为DATE
,您可以用LAST_DAY(hiredate)来确定该人员被雇用的月份的最后一天.
SELECT LAST_DAY(hiredate) AS hired_in_month_ending
然后,您可以用DATEDIFF(end, start)来确定从雇佣日期到月底之间的calendar days个数字.
SELECT 1 + DATEDIFF(LAST_DAY(hiredate), hiredate) AS calendar_days_in_month_hired
(1 +
是为了处理这样一个事实,即在一个月的最后一天雇用的人实际上只在工资单上呆了一天.)
至于days worked人的数字,这取决于你没有提到的各种因素.周末?度假?缺席?