如何从MySQL数据库中提取入职第一个月的工作天数?

How to extract a number of days worked in the first month of employment from MySQL database?

提问人:gosiia 提问时间:10/18/2023 最后编辑:O. Jonesgosiia 更新时间:10/18/2023 访问量:24

问:

我使用MySQL。我有一个数据库,其中包含有关员工的数据:姓名、姓氏、雇用日期(年-月-日)。我想在工作的第一个月工作几天。这些月的天数不同,我不知道该怎么做。

我认为 TIMESTAMPDIFF() 函数可能很有用,但我无法弄清楚正确的语法。 我是SQL的初学者,感谢您的宽容。

mysql 日期时间

评论

1赞 user1191247 10/18/2023
你试过了什么?请阅读提出良好的结构化查询语言 (SQL) 问题的提示,并使用 DDL ()、示例数据和所需输出更新您的问题。SHOW CREATE TABLE tbl_name;

答:

1赞 O. Jones 10/18/2023 #1

如果有一个名为 type 的列,则可以使用 LAST_DAY(hiredate) 确定该人员被雇用的月份的最后一天。hiredateDATE

SELECT LAST_DAY(hiredate) AS hired_in_month_ending

然后,您可以使用 DATEDIFF(end, start) 确定雇用日期和月末之间的日历天数。

SELECT 1 + DATEDIFF(LAST_DAY(hiredate), hiredate) AS calendar_days_in_month_hired

(这是为了处理这样一个事实,即在当月的最后一天雇用的人实际上有一天的工资单。1 +

至于工作天数,这取决于你没有提到的各种因素。周末?假期?缺席?

评论

0赞 gosiia 10/18/2023
这是一个用于作业的玩具数据库,因此数据库中没有提到周末、节假日和缺勤。谢谢你这么清楚的回答。
0赞 gosiia 10/18/2023
TIMESTAMPDIFF() 也很好用,但你也必须添加 1