PDA

View Full Version : از یک تارخ تا یک تاریخ دیگر



lovesky
جمعه 06 دی 1387, 17:48 عصر
سلام
اگه تاریخ رو درsqlبه صورت 3 فیلد تعریف کرده باشیم وحالا در c#بخواهیم یکselect از تاریخ بگیریم از چه کدی باید استفاده کنیم:گریه:

PERFORIN
جمعه 06 دی 1387, 23:27 عصر
سلام دوست عزیز

این کد از تاریخ 1/1/1386 تا 30/12/1387 را برات میاره باقیش به عهده ی خودت




SELECT roz,mah,sal
FROM tableName
WHERE roz BETWEEN 1 AND 30 AND mah BETWEEN 1 AND 12 AND sal BETWEEN 1386 AND 1387



اگر یادتان ماند و باران گرفت دعایی به حال بیابان کنید

lovesky
شنبه 07 دی 1387, 16:35 عصر
سلام
اگه تاریخ رو درsqlبه صورت 3 فیلد تعریف کرده باشیم وحالا در c#بخواهیم یکselect از تاریخ بگیریم از چه کدی باید استفاده کنیم:گریه:
lمرسی ولی منظور من تاریخی مثل از6/6/1387تاتاریخ 9/8/1385 تو رو خدا فوریه

PERFORIN
شنبه 07 دی 1387, 17:46 عصر
lمرسی ولی منظور من تاریخی مثل از6/6/1387تاتاریخ 9/8/1385 تو رو خدا فوریه


خوب اینجوری دیگه نمیشه تنها با یک دستور SELECT این را به دست آورد
حالا چرا بانک اطلاعاتی را تصحیح نمی کنی تا اینقدر مشکل نداشته باشی؟؟؟

hamidtb
شنبه 07 دی 1387, 19:12 عصر
سلام
منم به این مشکل برخوردم
میشه لطف کنید بگید که چه جورب پایگاه داده رو تصحیح کنم که بتونم این کار رو انجام بدم

lovesky
شنبه 07 دی 1387, 20:27 عصر
اخه برای ثبت تاریخ به صورت شمسی از یک diiاستفاده کردم که اطلاعات رو توی 3تاtextboxبهم نشون میده وثبت میکنه خیلی هم عجله دارم می ترسم نتونم از راه دیگه وراحتی تبدیل تاریخ کنم.اگه میشه کمکم کنید.:ناراحت::عصبانی++:

PERFORIN
یک شنبه 08 دی 1387, 10:58 صبح
سلام
منم به این مشکل برخوردم
میشه لطف کنید بگید که چه جورب پایگاه داده رو تصحیح کنم که بتونم این کار رو انجام بدم

سلام
شما برای ذخیره تاریخ باید یک فیلد از نوع متن با حداکثر کارکتر 10 ایجاد کنید مثلا nvarchar(10) و کل تاریخ را توش ذخیره کنید مثلا 20/11/1387
بعد هم شما اصلا نیازی به هیچ dll ای ندارین شما میتونید از کلاس System.Globalization.PersianCalander که جزوی از #c هست استفاده کنید

البته من خودم یک کلاس از طریق همین روش درست کردم که براتون میذارم ولی اگه نخواستین ازش استفاده کنید می تونید از کد هایی که توش استفاده کردم استفاده کنید

موفق باشید

اگر یادتان ماند و باران گرفت دعایی به حال بیابان کنید

davoodrm666_666
یک شنبه 08 دی 1387, 11:45 صبح
بیبن فیلد تاریخ رو به صورت bigint توی دیتا بیس ذخیره کن اگر تاریخ این باشه6/6/1387
در دیتا بیس به این صورت 13870606ذخیره کن و به راحتی با دستور زیر بازه رو مشخص کن


SELECT * From TblName WHERE Pdate between13870606 and 13870906

s_ahmadneya
یک شنبه 08 دی 1387, 12:02 عصر
بیبن فیلد تاریخ رو به صورت bigint توی دیتا بیس ذخیره کن اگر تاریخ این باشه6/6/1387
در دیتا بیس به این صورت 13870606ذخیره کن و به راحتی با دستور زیر بازه رو مشخص کن


SELECT * From TblName WHERE Pdate between13870606 and 13870906

دوست عزیز بد کار کردن از انجام ندادن کاری بدتر است!
وقتیsql نوع datetime داره چرا از این روش استفاده نمی کنی
شما بایدفیلدت را از نوع تاریخ بگیری وتاریخها را هم میلادی در ان بریزی یعنی ازکاربر شمسی بگیری وتبدیل به میلادی کنی ودر بانک ذخیزه نمایی .وبرعکس با این کار می تونی از تمامی امکانات c# ,sql به راحتی استفاده کنی مثلا تعداد روز ماه سال ثانیه بین دوتاریخ
ویا تبدیلهای به قمری میلادی وحتی تاریخهای معتبر جهانی دیگر
و مهمتر از همه جستجو بر اساس تاریخ
اما در حال حاضر مشکلت را یه جوری برطرف کن اماحتما" دنبال مواردی که گفتم باش
موفق باشید

hamidtb
یک شنبه 08 دی 1387, 17:21 عصر
سلام
شما برای ذخیره تاریخ باید یک فیلد از نوع متن با حداکثر کارکتر 10 ایجاد کنید مثلا nvarchar(10) و کل تاریخ را توش ذخیره کنید مثلا 20/11/1387
بعد هم شما اصلا نیازی به هیچ dll ای ندارین شما میتونید از کلاس System.Globalization.PersianCalander که جزوی از #c هست استفاده کنید

البته من خودم یک کلاس از طریق همین روش درست کردم که براتون میذارم ولی اگه نخواستین ازش استفاده کنید می تونید از کد هایی که توش استفاده کردم استفاده کنید

موفق باشید

اگر یادتان ماند و باران گرفت دعایی به حال بیابان کنید

سلام
نمونه کدی رو که گذاشتین نتونستم باز کنم
اگه امکانش هست دوباره Upload کنید


دوست عزیز بد کار کردن از انجام ندادن کاری بدتر است!
وقتیsql نوع datetime داره چرا از این روش استفاده نمی کنی
شما بایدفیلدت را از نوع تاریخ بگیری وتاریخها را هم میلادی در ان بریزی یعنی ازکاربر شمسی بگیری وتبدیل به میلادی کنی ودر بانک ذخیزه نمایی .وبرعکس با این کار می تونی از تمامی امکانات c# ,sql به راحتی استفاده کنی مثلا تعداد روز ماه سال ثانیه بین دوتاریخ
ویا تبدیلهای به قمری میلادی وحتی تاریخهای معتبر جهانی دیگر
و مهمتر از همه جستجو بر اساس تاریخ
اما در حال حاضر مشکلت را یه جوری برطرف کن اماحتما" دنبال مواردی که گفتم باش
موفق باشید

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

PERFORIN
یک شنبه 08 دی 1387, 17:40 عصر
نمونه ی بالایی مشکلی نداره ولی یک نمونه استفاده از dll را براتون میذارم

s_ahmadneya
دوشنبه 09 دی 1387, 08:05 صبح
سلام
میشه نحوه تبدیل رو بگید
مثلا من اگه همه تاریخ ها رو به صورت میلادی وارد کردم بعد یه Select زدم که چند تا از این تاریخ ها رو در بر میگرفت چه جوری به شمسی تبدیل کنم
http://barnamenevis.org/forum/images/statusicon/user_offline.gif http://barnamenevis.org/forum/images/buttons/report.gif (http://barnamenevis.org/forum/report.php?p=656990)

سلام
برای تبدیل تاریخ دو روش عمده وجود دارد
1- تابعی در sql server بنویسی و در هنگام select بهمراه فیلدت فراخانی نمایی که با این روش داده های که به محیط C# می اید بصورت شمسی است .
2- روش دوم داده ها را از sql فراخانی کنی انوقت در محیط سی شارپ انها را به شمسی تبدیل کنی .یعنی تمامی تاریخهای دیتا تیبلت را در یک حلقه برداری به شمسی تبدیل کنی
کد در سایت است برای جلوگیری از تکرار دوباره نویسی نمی کنم لطفا" به لینک های زیز مراجه نمایید موفق باشید
پست 7 لینک زیز
http://barnamenevis.org/forum/showthread.php?t=129103&highlight=%D8%A7%DB%8C%D9%86%D8%AF%DA%A9%D8%B3
وپست 2 لینک زیز
http://barnamenevis.org/forum/showthread.php?t=95001&highlight=%D8%A7%DB%8C%D9%86%D8%AF%DA%A9%D8%B3


و پست لینک زیز
http://barnamenevis.org/forum/showthread.php?t=64210[/URL]
[URL="http://barnamenevis.org/forum/showthread.php?t=95001&highlight=%D8%A7%DB%8C%D9%86%D8%AF%DA%A9%D8%B3"] (http://barnamenevis.org/forum/showthread.php?t=95001&highlight=%D8%A7%DB%8C%D9%86%D8%AF%DA%A9%D8%B3)

davoodrm666_666
دوشنبه 09 دی 1387, 08:48 صبح
دوست عزیز بد کار کردن از انجام ندادن کاری بدتر است!
وقتیsql نوع datetime داره چرا از این روش استفاده نمی کنی
شما بایدفیلدت را از نوع تاریخ بگیری وتاریخها را هم میلادی در ان بریزی یعنی ازکاربر شمسی بگیری وتبدیل به میلادی کنی ودر بانک ذخیزه نمایی .وبرعکس با این کار می تونی از تمامی امکانات c# ,sql به راحتی استفاده کنی مثلا تعداد روز ماه سال ثانیه بین دوتاریخ
ویا تبدیلهای به قمری میلادی وحتی تاریخهای معتبر جهانی دیگر
و مهمتر از همه جستجو بر اساس تاریخ
اما در حال حاضر مشکلت را یه جوری برطرف کن اماحتما" دنبال مواردی که گفتم باش
موفق باشید

دوست عزیز کار شما شاید توی پروژه های کوچیک جواب بده اما بدلیل Over head بالایی که داره اصلا به درد پروژه های تجاری نمی خوره در ضمن در net. تمامی امکاناتی که برای میلادی هست برای شمسی است اگر نیاز داشتید یاد بگیرید تایپیک بزنید تا براتون نمونه کد بزارم

s_ahmadneya
سه شنبه 10 دی 1387, 07:20 صبح
دوست عزیز کار شما شاید توی پروژه های کوچیک جواب بده اما بدلیل Over head بالایی که داره اصلا به درد پروژه های تجاری نمی خوره در ضمن در net. تمامی امکاناتی که برای میلادی هست برای شمسی است اگر نیاز داشتید یاد بگیرید تایپیک بزنید تا براتون نمونه کد بزارم
معلوم که دوست دارم یاد بگیرم
لطفا" کد وتوضیحاتش را در این تاپیک بگذارید ممنون می شوم.

"هر کس یک کلمه به من بیاموزد مرا بنده خود کرده است"

davoodrm666_666
سه شنبه 10 دی 1387, 08:39 صبح
Dim PersianDate as System.Globalization.PersianCalendar