نمایش نتایج 1 تا 5 از 5

نام تاپیک: اطلاعات بین دو بازه تاریخ

  1. #1
    کاربر دائمی آواتار m.4.r.m
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    تبریز
    پست
    1,407

    اطلاعات بین دو بازه تاریخ

    سلام دوستان
    من یه کدی میخوام بنویسم
    مثلا یک کارمند در بین بازه تاریخی چند روز مرخصی رفته، تا اینجا بین از تاریخ تا تاریخ میشه محاسبه کرد اما مشکل من انتهای ماه هست مثلا من میخوام بگم آقای x از تاریخ ۱۴۰۰/۱۱/۲۸ الی ۱۴۰۰/۱۲/۰۵ چند روز در بهمن ماه مرخصی رفته، به اصطلاح اسفند رو حساب نکنه اما بازه تاریخ حتما باید بهمن باشه چون برای تمام کارمندا میخوام محاسبه کنم
    یه جدول پرسنل دارم ، یک جدول مرخصی
    .ممنون از راهنمایی هاتون

  2. #2
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,057

    نقل قول: اطلاعات بین دو بازه تاریخ

    سلام و روز خوش
    اول شرط انتخاب مرخصی ها رو تاریخ شروع بگذارین که در بهمن باشه،
    بعد برای محاسبه زمان هم چک کنین که اگر تاریخ پایان در بهمن هست فقط روزها رو از هم کسر کنه وگرنه تاریخ پایان رو 30 بهمن در نظر بگیره و بعد محاسبه کنه.

  3. #3
    کاربر دائمی آواتار m.4.r.m
    تاریخ عضویت
    اسفند 1390
    محل زندگی
    تبریز
    پست
    1,407

    نقل قول: اطلاعات بین دو بازه تاریخ

    نقل قول نوشته شده توسط mazoolagh مشاهده تاپیک
    سلام و روز خوش
    اول شرط انتخاب مرخصی ها رو تاریخ شروع بگذارین که در بهمن باشه،
    بعد برای محاسبه زمان هم چک کنین که اگر تاریخ پایان در بهمن هست فقط روزها رو از هم کسر کنه وگرنه تاریخ پایان رو 30 بهمن در نظر بگیره و بعد محاسبه کنه.
    با یک کد امکانش باشه بفرمایید

  4. #4
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,057

    نقل قول: اطلاعات بین دو بازه تاریخ

    1- اول یک تابع بنویسین (مثلا به اسم Calc_Days) که تاریخ شروع و پایان رو بعنوان پارامتر بگیره و طبق خواسته محاسبه کنه
    2- در select ، این تابع رو استفاده کنین:
    SELECT start_date , end_date , Calc_Days(start_date,end_date) AS days , ... FROM ... WHERE ...

  5. #5
    کاربر دائمی آواتار mazoolagh
    تاریخ عضویت
    اردیبهشت 1384
    سن
    71
    پست
    3,057

    نقل قول: اطلاعات بین دو بازه تاریخ

    با فرض منطقی که:
    1- تاریخ فارسی بصورت integer ذخیره شده
    2- اگر تاریخ شروع و پایان یکی باشن 1 روز منظور میشه (و نه 0 روز)

    FUNCTION Calc_Days(@start_date int, @end_date int)
    RETURNS int
    AS
    BEGIN
    DECLARE @X int
    IF @start_date/100=@end_date/100 /* SAME MONTH */
    SET @X=@end_date-@start_date+1
    ELSE
    BEGIN
    DECLARE @start_dayofmonth int = @start_date % 100
    DECLARE @start_month int = (@start_date/100) % 100
    IF @start_month < 7
    SET @X=31-@start_dayofmonth+1
    ELSE
    IF @start_month<12
    SET @X=30-@start_dayofmonth+1
    ELSE
    SET @X=29-@start_dayofmonth+1
    END
    RETURN @X
    END

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •