PDA

View Full Version : بدست آوردن تعداد جمعه های بین دو تاریخ



رامین مرادی
سه شنبه 04 مهر 1396, 15:48 عصر
وقت بخیر دوستان
من تو کوئری که میگیرم دوتا تاریخ میلادی دارم. میخوام بدونم ایا امکانش هست هنگام کوئری گرفتن تعداد روزهای جمعه بین اون دوتاریخ رو هم بدست بیارم و تو یک ستون نشون داد؟

رامین مرادی
چهارشنبه 05 مهر 1396, 08:11 صبح
فک کنم سوال سخت و عجیب غریبی بود :متفکر:

Mahmoud.Afrad
چهارشنبه 05 مهر 1396, 09:12 صبح
https://stackoverflow.com/a/15337457

رامین مرادی
سه شنبه 11 مهر 1396, 09:04 صبح
https://stackoverflow.com/a/15337457

به نتیجه ای نرسیدم :ناراحت:

کلا نیاز من اینه : من دوتا تاریخ دارم مثلا 2017/06/08 و 2017/06/26
حالا میخوام بین این دو تاریخ چندتا جمعه وجود داره و نتیجه رو تو یه متغییر ذخیره کنم تا بعدا توسط یه کوئری دیگه استفاده کنم.

jafarpalideh
سه شنبه 11 مهر 1396, 12:00 عصر
اینجا رو یه نگاه بنداز .
http://barnamenevis.org/showthread.php?541565-%D8%B7%D8%B1%D8%A7%D8%AD%DB%8C-%D8%AA%D9%82%D9%88%DB%8C%D9%85-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-PM&p=2377934&viewfull=1#post2377934


با این دستور هم میتونی بفهمی که تاریخ مورد نظرت چه روزی از هفته س .


SELECT DATEPART(dw,GETDATE())

jafarpalideh
سه شنبه 11 مهر 1396, 12:02 عصر
البته من اومدم روزها رو تویه جدولم نگه داشتم .
بعد فقط یه قیاس زدم
کوئری رو ببینی میفهمی


SELECT *, DATEPART(dw,GETDATE()) from tbl where weekDays like'%' + cast(DATEPART(dw,GETDATE()) asnvarchar) + '%'

jafarpalideh
سه شنبه 11 مهر 1396, 12:04 عصر
اینجا رو هم یه نگاهی بنداز


https://stackoverflow.com/questions/4967808/number-of-fridays-between-two-dates

Mahmoud.Afrad
سه شنبه 11 مهر 1396, 12:41 عصر
به نتیجه ای نرسیدم :ناراحت:

کلا نیاز من اینه : من دوتا تاریخ دارم مثلا 2017/06/08 و 2017/06/26
حالا میخوام بین این دو تاریخ چندتا جمعه وجود داره و نتیجه رو تو یه متغییر ذخیره کنم تا بعدا توسط یه کوئری دیگه استفاده کنم.

خب لینکی که ارسال کردم همینه دیگه. تعداد همه روزها را داده. شما فقط از fri استفاده کن.
اگر هم راهنمایی بیشتر میخواهی باید توضیحات بیشتری بدی یا ساختار جدول رو بزاری و خروجی مدنظرت را هم بگی.

رامین مرادی
سه شنبه 11 مهر 1396, 12:51 عصر
خب لینکی که ارسال کردم همینه دیگه. تعداد همه روزها را داده. شما فقط از fri استفاده کن.
اگر هم راهنمایی بیشتر میخواهی باید توضیحات بیشتری بدی یا ساختار جدول رو بزاری و خروجی مدنظرت را هم بگی.

جدولی دارم که تعداد روزهای مرخصی یک فرد رو نگه میداره . من با کوئری زیر تونستم تعداد روزهای مرخصی یک فرد رو بر اساس تاریخ اول و آخر ماه بدست بیارم. طوری که اگه شروع تاریخ از ماه قبل بود اونو دیگه حساب نمیکنه فقط اون تعداد روزی که تو اون تاریخ رو حساب میکنه . یا اگه تاریخ اتمام مرخصی تو ماه بعد باشه رو هم فقط تعداد روز تو اون ماه رو حساب میکنه .
تنها موردی که مونده کسر تعداد جمعه بین دو تاریخ هست. مثلا اگه فردی از تاریخ 10 تا 18 رفته مرخصی و 15 جمعه باشه میخوام اون جمعه رو کسر کنم. کوئری رو میزارم خودتون ببینید چی نوشتم (به جز محاسبه جمعه)


******



فیلد های جدولم هم اینه.
شماره پرسنلی-تاریخ شروع مرخصی-تاریخ اتمام مرخصی-تعداد روز مرخص-ساعت شروع مرخصی-ساعت اتمام مرخصی- جمع ساعت مرخصی

که در صورتی که مرخصی روزانه باشد تاریخ ها ثبت میشه و در صورتی که مرخصی ساعتی باشه ساعت ها ثبت میشه. البته یه فیلد نوع مرخصی هم دارم که مشخص میکنه روزانه هست یا ساعتی

Mahmoud.Afrad
سه شنبه 11 مهر 1396, 13:23 عصر
اینطوری نمیشه تست کرد.
اگر میتونی اسکریپت جداول رو بزار (به همراه توضیح که هر ستون برای چی هست)، نمیتونی پیام خصوصی کن. همچنین یکسری insert که داده های تست باشند.
.
.
.
به طور کلی جایی که بازه بین دو تاریخ مرخصی را محاسبه میکنید میتونید تعداد جمعه ها رو طبق همون لینک بدست بیارید و کم کنید.