PDA

View Full Version : datedif



setak
شنبه 28 مرداد 1385, 10:46 صبح
من از تابع datediff می خواهم برای یک تاریخ شمسی استفاده کنم برای مثال :
select * from tablename where datediff(year,'1384-05-28','1385-05-28')=1
اما مشکلی که هست اینه که این range رو نمی پذیره و فقط از سال 1753 به بعد قبول می کنه . برای حل این مشکل چه راه حلی وجو د داره؟

h_baqery
شنبه 28 مرداد 1385, 12:35 عصر
از دستوری که نوشته اید تفاوت سالها را می خواهید و با دستور Substring می توانید قسمت سال را جدا کنید و از هم کم کنید.

AminSobati
دوشنبه 30 مرداد 1385, 23:39 عصر
دوست عزیزم،
همونطور که متوجه شدین تاریخ در فیلد DateTime نمیتونه از حدی کوچکتر باشه. برای ذخیره تاریخهای فارسی، یا به شکل عدد ذخیره کنید مثل: 13850423 یا به شکل رشته: 1385/04/23
توابع استاندارد SQL Server برای تاریخ، فقط روی تاریخ میلادی کار میکنه. اگر SQL Server 2005 استفاده میکنید، داستان به کلی متفاوته چون قابلیتهای جدیدی وجود داره

setak
شنبه 18 شهریور 1385, 10:55 صبح
من اگر بخوام از SQl Server2005 استفاده کنم باید در کدام قسمت این تنظیمات را انجام بدم تا بتوانم تاریخ رو از 1300 شروع کنم؟

Amirtak
شنبه 23 دی 1385, 13:01 عصر
چطوری میتونم یه Mask برای فیلد text تعریف کنم که فقط ورودی به شکل ساعت رو بگیره مثل 12:20 و

AminSobati
شنبه 23 دی 1385, 17:33 عصر
من اگر بخوام از SQl Server2005 استفاده کنم باید در کدام قسمت این تنظیمات را انجام بدم تا بتوانم تاریخ رو از 1300 شروع کنم؟
دوست عزیزم،
در 2005 هم نمیشه تاریخ رو از حد خاصی پائینتر ببرید، یا باید به شکل String نگهداری کنید یا به کمک Dot NET یک Type جدید ایجاد کنید که با تاریخ شمسی راحت کار کنه. خوشبختانه تاریخ شمسی در Dot Net 2 پشتیبانی میشه