iT邦幫忙

0

MSSQL 滿3個月的算法

  • 分享至 

  • xImage

您好:
請問MSSQL 中,有關人差勤計算想請教

2024-06-10 端午節,
要算一個人是否滿3個月 ,
Q1.這3個月,應該是以月來計算?
Q2.若以月來計算,則
2024-06-10 語法,減3個月, 他是 2024-03-10
但他入職2024-03-09起,才算滿3個月?
有這種語法嗎? 要先-3MONTH,再-1天?

SELECT  DATEADD(MONTH,-3, CONVERT(DATETIME, '2024-06-10')),
DATEDIFF(MONTH,  CONVERT(DATETIME, '2024-06-10'), CONVERT(DATETIME, '2024-03-09') ),
DATEDIFF(MONTH,  CONVERT(DATETIME, '2024-06-10'), CONVERT(DATETIME, '2024-03-29') )
看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2024-11-07 10:21:53 檢舉
DATEADD(DAY,-1,DATEADD(MONTH,-3, CONVERT(DATETIME, '2024-06-10'))))
啊就做兩次不就行了?
痾...報到日就是3/9當然6/9就是滿3個月...
你6/10才算滿3個月會被勞工投訴勞保局..
noway iT邦研究生 1 級 ‧ 2024-11-07 15:51:10 檢舉
您好:謝謝

順便一問 DATEDIFF,若用MONTH,他似乎是以 月來扣減,
如下
結果是 -2 , -1 , -1 ,0

select DATEDIFF(MONTH, CONVERT(DATETIME, '2024-05-10'), CONVERT(DATETIME, '2024-03-10') ),
DATEDIFF(MONTH, CONVERT(DATETIME, '2024-04-30'), CONVERT(DATETIME, '2024-03-10') ),
DATEDIFF(MONTH, CONVERT(DATETIME, '2024-04-01'), CONVERT(DATETIME, '2024-03-10') ),
DATEDIFF(MONTH, CONVERT(DATETIME, '2024-03-31'), CONVERT(DATETIME, '2024-03-10') )
sam0407 iT邦大師 1 級 ‧ 2024-11-08 09:39:12 檢舉
貴公司的規定應該是滿三個月的員工得享有三節的福利。

所以這時就要問人資,是要以端午節當天或是端午節的前一天工作日回推三個月?

我們只要依人資確認的日期直接減三個月就好,別搞的那麼複雜。

當然不管最後採那種作法,都建議要在程式註解說明清楚,方便自己或以後接手的人維護。
froce iT邦大師 1 級 ‧ 2024-11-08 10:35:18 檢舉
解釋權不在你身上的請去和有解釋權的人去確認,跟我們問是有啥用?
然後你的問題實在不明確:
1. 日期回推完,去和入職日期比,就能知道他有沒有滿了。不需要用到DATEDIFF,但我會建議用入職日期當基準,去加3個月去和結算日比對,不要用回推的。
2. DATEDIFF,若用MONTH,他似乎是以 月來扣減 :
你要不要去查一下英文MONTH是啥...你參數給MONTH當然是用月來算啊。
我們公司是用90天才算滿三個月
假設 1/2 入職,二月只有 28天,這樣三個月才 30 + 28 + 31 = 89天
如果是 7/1 入職,三個月會是 31 + 31 + 30 = 92 天
差三天耶,所以建議用 90天計算比較保險
noway iT邦研究生 1 級 ‧ 2024-11-08 15:13:38 檢舉
謝謝各位前輩的寶貴意見
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
allenlwh
iT邦高手 1 級 ‧ 2024-11-07 11:56:25
最佳解答

依據2024-06-10 端午節,要算一個人是否滿3個月。
我猜想情境應該是:要發放端節禮金,條件是需到職滿3個月的同仁。

以2024-06-10結算點,減3個月, 就是2024-03-10

只是到職日在2024-03-10(含)以前的人員,視為到職滿3個月

看更多先前的回應...收起先前的回應...
noway iT邦研究生 1 級 ‧ 2024-11-07 15:48:04 檢舉

您好:
謝謝

noway iT邦研究生 1 級 ‧ 2024-11-07 18:07:02 檢舉

另外,順便一問
2023-04-05到職
DATEADD(YEAR,1 ,'2023-04-05')
他應該是 2024-04-05 滿一年 有年休假?
還是 2024-04-04 滿一年,2024-04-05 有年休假
謝謝

@@...
滿6個月就有3天年假
滿1年就有7天年假..
2023-04-05到職
2023-10-05 00:00:00 ~ 2024-04-04 23:59:59 3天年假
2024-04-05 00:00:00 ~ 2025-04-04 23:59:59 7天年假

sam0407 iT邦大師 1 級 ‧ 2024-11-08 09:45:18 檢舉

休假、福利這些問題建議直接和人資討論,這是他們主管的業務,不同的公司有可能會不同喔,最終解釋權要以他們的意見為主。

noway iT邦研究生 1 級 ‧ 2024-11-08 15:14:06 檢舉

謝謝各位前輩寶貴的意見

0
huangsb
iT邦好手 1 級 ‧ 2024-11-08 11:04:10

其實這題 AI 就能回答了

我要發表回答

立即登入回答