ورود

View Full Version : مشكل ذخيره تاريخ شمسي در sql 2008



goldmember
سه شنبه 10 بهمن 1391, 17:48 عصر
سلام دوستان من به يه مشكلي توي ذخيره تاريخ شمسي در sql 2008 برخوردم. ميدونم اگه تو فروم سرچ كنم كلي اصلاعات بدست ميارم. البته كه اينكارو كردم ولي جواب بدرد بخورم رو بدست نياوردم. اگه ممكنه بهم كمك كنين.
موردي كه من باهاش مواجم ، براي مثال من يك جدولي دارم با ساختار زير

id int
tarikh nvarchar(10)
amount int


مي خوام كوئريي بنويسم كه مجموع مقادير كالاهاي يكسان رو بر اساس ماه دريافت بدست بيارم. كه خودم از كد زير استفاده كردم:


select id,sum(amount)
from table1
group by id,YEAR(tarikh),Month(tarikh)


كدي كه نوشتم تا حدودي كار مي كنه ولي به تاريخ هايي همچون "1391/06/31" كه ميرسه خطاي زير رو ميده :

Conversion failed when converting date and/or time from character string.

براي رفم مشكلم از datetime2 هم استفاده كردم ولي باز هم تو اين تاريخ ها همين خطا رو ميده.
اگرم پيشنهادتون اينه كه تاريخ ميلادي ذخيره كنمو بعدش تبديل كنم اينو بگم كه مي خوام كوئريمو تو stored procedure SQL بنويسم و نتايج حاصل رو بر گردونم و بخاطر همين نميسه.

اگرم بر اساس تاريخ ميلادي گروپ باي كنم چون مي خوام نتايج خروجي رو در يك چيز ديكه محاسبه كنم تيجه آخر اشتباه ازآب در مياد. و بخاطر همين نميتونم.

بطور خلاصه مي خوام ليست ركورد ها رو بر اساس سال و ماه شمسي گروپ باي كنم

لطفا اگه پيشنهادي دارين كمكم كنين

با تشكر

DataMaster
پنج شنبه 12 بهمن 1391, 10:16 صبح
اگه تاریخ شمسی رو به صورت رشته varchat(10) ذخیره میکنی این کد بدردت میخوره به تفکیک کد کالا و سال و ماه جمع مقادیر رو نشون میده

select ID ,sum(amount) from table1 group by id ,left(tarikh,7)

asghar2008
پنج شنبه 12 بهمن 1391, 22:01 عصر
اگه تاریخ شمسی رو به صورت رشته varchat(10) ذخیره میکنی این کد بدردت میخوره به تفکیک کد کالا و سال و ماه جمع مقادیر رو نشون میده

select ID ,sum(amount) from table1 group by id ,left(tarikh,7)

سلام

میشه این قسمت رو توضیح بدین.

left(tarikh,7)

ممنون

hassan_reza
پنج شنبه 12 بهمن 1391, 22:02 عصر
یعنی 7تا از سمت چپ رشته