خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را
بدست آوردن عدد هفته از ماه در SQL Server
در پست قبلی ر خصوص بدست آوردن عدد هفته از سال را مشاهده کردید و حالا در این پست کوتاه تصمیم داریم عدد هفته از ماه را در SQL Server بدست آوریم. یافتن شماره هفته در یک ماه روش ساده ای نیست. هیچ تابع داخلی برای بدست آوردن این مورد وجود ندارد. ما باید اسکریپت خود را با استفاده از چندین تابع تاریخ ایجاد کنیم تا عدد هفته را بدست آوریم.
در این اسکریپت از تابع DATEADD به همراه عملکرد EOMONTH استفاده کرده ام تا اولین روز ماه را برای تاریخ معین بدست بیاوریم. سپس از تابع DATEPART با پارمتر Week استفاده کرده تا شماره هفته سال را برای تاریخ مد نظرتان و اولین روز ماه بدست آورید. سرانجام تعداد هفته های سال روز اول ماه را از تعداد هفته سال در تاریخ معین کم کنید و 1 را برای بدست آوردن عدد هفته ماهانه تاریخ مد نظرتان اضافه کنید.
توجه داشته باشید که روز اول هفته، یکشنبه در ظنر گرفته شده است. پس هفته های ناکامل هم یک هفته در نظر گرفته می شوند. به عنوان مثال ، ژوئن 2019 از روز شنبه آغاز می شود. بنابراین شنبه 2019/06/01 هفته اول و یکشنبه 2019/06/02 هفته دوم می باشد.
در این اسکریپت از تابع DATEADD به همراه عملکرد EOMONTH استفاده کرده ام تا اولین روز ماه را برای تاریخ معین بدست بیاوریم. سپس از تابع DATEPART با پارمتر Week استفاده کرده تا شماره هفته سال را برای تاریخ مد نظرتان و اولین روز ماه بدست آورید. سرانجام تعداد هفته های سال روز اول ماه را از تعداد هفته سال در تاریخ معین کم کنید و 1 را برای بدست آوردن عدد هفته ماهانه تاریخ مد نظرتان اضافه کنید.
DECLARE @date_given datetime = '2020-05-20';
SELECT (DATEPART(week, @date_given) - DATEPART(week, DATEADD(day, 1, EOMONTH(@date_given, -1)))) + 1;
GO
توجه داشته باشید که روز اول هفته، یکشنبه در ظنر گرفته شده است. پس هفته های ناکامل هم یک هفته در نظر گرفته می شوند. به عنوان مثال ، ژوئن 2019 از روز شنبه آغاز می شود. بنابراین شنبه 2019/06/01 هفته اول و یکشنبه 2019/06/02 هفته دوم می باشد.
نمایش دیدگاه ها (0 دیدگاه)
دیدگاه خود را ثبت کنید: