PDA

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



saeed31641
شنبه 11 بهمن 1393, 21:40 عصر
سلام
من تو بانک اطلاعاتی تاریخ بصورت میلادی ذخیره کردم میخام به شمسی تبدیل کنم و رکودهای بین اونا رو بشمارم

مثلا
سال تعداد
1393 ۵
1392 4

sajadsobh
یک شنبه 12 بهمن 1393, 00:11 صبح
شمایی که به این کوئری نیاز داشتی باید یه فیلد واسه ذخیره ی سال شمسی هم توی جدول قرار میدادی. مثلاً تاریخ رو که میلادی ذخیره کردی هیچ، یه فیلد هم میذاشتی که فقط سال رو به شمسی توش نگه داره که دیگه عمل جستجو و انجام کوئریت وقت گیر نباشه واست. اینجوری راحت تر و قابل فهم تر میشه واسه خودت. البته این نظر شخصی منه! شاید دوستان نظر دیگه داشته باشن.

SabaSabouhi
یک شنبه 12 بهمن 1393, 08:06 صبح
شمایی که به این کوئری نیاز داشتی باید یه فیلد واسه ذخیره ی سال شمسی هم توی جدول قرار میدادی. مثلاً تاریخ رو که میلادی ذخیره کردی هیچ، یه فیلد هم میذاشتی که فقط سال رو به شمسی توش نگه داره که دیگه عمل جستجو و انجام کوئریت وقت گیر نباشه واست. اینجوری راحت تر و قابل فهم تر میشه واسه خودت. البته این نظر شخصی منه! شاید دوستان نظر دیگه داشته باشن.

سلام
من هم با دوستمون sajadsobh موافقم، البته یه کوچولو اصلاحش می‌کنم.
خوبه یه جدول سال بگیری، و مشخصه‌ی سال ( در اینجا می‌شه سال هجری شمسی ) رو توی اون نگهداری کنی
و Id اون سال رو تو این جدول بگذاری.

صبا صبوحی

saeed31641
یک شنبه 12 بهمن 1393, 08:29 صبح
ممنون دوستان .خودم یه کارش کردم. میزارم ببیند .اونیم که من فیلد نگاه دارم تو بانک کاملا مخالف.شاید راحت باشه ولی اصلا راه اصولی نیست

ALTER Procedure [dbo].[test]

AS
Begin

SELECT
Year(FStartDate) As date2, -- تاریخ سال میلادی میده که باید با توابع خود اس کیو ال یه برنامه رابطه تبدیل به شمسی کنید
convert(int,([dbo].[ftest](Year(FStartDate)))) As totalcourse,

FROM
mytable

GROUP BY
Year(FStartDate)
ORDER BY
date2 DESC

end