PDA

View Full Version : تاریخ شمسی در بانک Sql



ICEMAN
شنبه 31 فروردین 1387, 12:43 عصر
سلام ...
من یه Field از نوع datetime دارم
که اگر تاریخ میلادی توش بنویسم مشکلی نیست ولی اگر مثلا 1384/10/10 رو بنویسم
خطا میگیره



Invalid character value for cast specification

A.Nemati
شنبه 31 فروردین 1387, 14:26 عصر
نوع datetime محدوده January 1, 1753 تا December 31, 9999 رو ساپورت می‌کنه و smalldatetime محدوده January 1, 1900 تا June 6, 2079 (در SQL Server Books Online توضیح داده شده). بنابراین تاریخی که شما وارد کردید، نامعتبره.
راههای مختلفی برای مدیریت تاریخ شمسی وجود داره. یکی از آنها این است که شما تاریخ میلادی را نگه دارید و هرگاه در برنامه می‌خواستید آنرا به کاربر نشان دهید، آنرا به شمسی تبدیل کنید. راه دیگر این است که تاریخ شمسی را به صورت یک رشته ذخیره کنید. البته در راه دوم باید همیشه از فرمت مشخصی پیروی کنید تا در Sort‌ بر حسب این فیلد دچار مشکل نشوید. برای اینکار معمولا تاریخ را ده کاراکتری ذخیره می‌کنند (مثلا 01/10/1386 یا 10/05/1387).