دسته بندی ها
14:48 1399/04/06

محاسبه روزهای بین 2 تاریخ در Sql Server

مشخصات سوال کننده :
کاربر : hamid_b     امتیاز کاربر : 510     رتبه کاربر : 4
دسته بندی : Sql Server

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 4145
پاسخ دهنده : saedbfd 17:31 1399/04/06

سلام

بهتر بود برای این سوال تاریخ ها رو به صورت میلادی می نوشتید چون تمامی عملگرهای sql Server بر روی تاریخ میلادی تعریف شدن. برای محاسبه تعداد روزهای خاص موجود در یک بازه خاص می تونید از این روش استفاده کنید.

 

select t.*,
       Sum(datediff(day,
                case when startdate < '2020-02-08' then '2020-02-08' else startdate end),
                case when enddate > '2020-02-12' then '2020-02-12' else startdate end)
               ) + 1) As myColumn
from t;

 

در کوئری بالا از تابع DateDiff در Sql Server استفاده شده. 

 

حال فرض کنید کارمند شما از تاریخ 2020-02-15 تا تاریخ 2020-02-24 به مرخصی رفته است. و شما میخواید بدونید که بین بازه 2020-02-08 تا 2020-02-12 چه تعداد روز مرخصی داشته است. که به راحتی با اسنفاده از کوئری بالا می تونید این مقدار را محاسبه کنید

به این پاسخ امتیاز بدهید    0
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود