ايران ويج

نسخه‌ی کامل: تاریخ میلادی رو چطوری به شمسی تبدیل کنم بوسیله sql
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
نمیشه تاریخ میلادی رو بوسیله query توی sql تبدیل به تاریخ شمسی کرد ودر فیلد دیگری قرار داد
میشه
ولی برای استفاده از تاریخ شمسی تو sql راههای راحتری هم هست
(۲۲-مرداد-۱۳۸۸, ۱۸:۳۸:۰۱)lord_viper نوشته است: [ -> ]میشه
ولی برای استفاده از تاریخ شمسی تو sql راههای راحتری هم هست
سلام اين راه هارابيان مي كنيد
یکیش که من خودم برای استفاده از تاریخ شمسی تو sql استفاده میکنم اینه
نوع فیلد رو int میگیرم و تاریخ رو بدون separator یا همون // وارد میکنم مثلا1387/05/12 رو به صورت 13870512 وارد میکنم بعد موقع زدن select با یه تابع کوچیک این // ها رو جایگزین میکنم
دردسرش کمتره سرعتش هم بالاتره
(۲۳-مرداد-۱۳۸۸, ۱۳:۱۰:۱۹)lord_viper نوشته است: [ -> ]یکیش که من خودم برای استفاده از تاریخ شمسی تو sql استفاده میکنم اینه
نوع فیلد رو int میگیرم و تاریخ رو بدون separator یا همون // وارد میکنم مثلا1387/05/12 رو به صورت 13870512 وارد میکنم بعد موقع زدن select با یه تابع کوچیک این // ها رو جایگزین میکنم
دردسرش کمتره سرعتش هم بالاتره

این روش رو من هم استفاده می کنم
این روش باعث می شه از شر توابعی که کارشون مقایسه تاریخ هاست هم خلاص بشی
مثلاً اگه بخوای رکورد هایی رو ببینی که تاریخشون بین 1388/05/01 تا 1388/06/01 هست باید با این جور توابع کار کنی ولی توی این حالت شما می نویسی Date>13880501 & Date<13880601
فقط باید به این نکته توجه کنی که به اعداد 1 رقمی یه صفر هم اضافه کنی!!! پس با این حساب این تاریخ غلطه: 1388/5/1
(۲۳-مرداد-۱۳۸۸, ۱۳:۱۰:۱۹)lord_viper نوشته است: [ -> ]یکیش که من خودم برای استفاده از تاریخ شمسی تو sql استفاده میکنم اینه
نوع فیلد رو int میگیرم و تاریخ رو بدون separator یا همون // وارد میکنم مثلا1387/05/12 رو به صورت 13870512 وارد میکنم بعد موقع زدن select با یه تابع کوچیک این // ها رو جایگزین میکنم
دردسرش کمتره سرعتش هم بالاتره

میشه این روشو کاملتر توضیح بدین؟
اون تابع تابع اس کیو ال منظورته؟
سلام حسین جان روش کار رو که بالا توضیح دادم
این هم تابعی که برای این کار نوشتم و / / ها رو قرار میده

کد:
CREATE FUNCTION separate_date(@intdate int)

RETURNS char(10)
AS
BEGIN
declare @sam char(8)
declare @dat char(10)
set @sam=convert(char(10),@intdate);
set @dat=substring(@sam,1,4)+'/'+substring(@sam,5,2)+'/'+substring(@sam,7,2)
return @dat
END
GO

فکر نمیکنم توضیح بیشتری بخواهد
آها فهمیدم
فقط
نقل قول: موقع زدن select با یه تابع کوچیک این // ها رو جایگزین میکنم
اینم یه توضیح میدی؟
شرمندها
سلام حسین جان
اون تابعی که بالا گزاشتم رو تو قسمت
programmability /functions/scalar_valued function/new scalar_valued function
اجراش میکنی بعد از تابع تو select هات به این صورت استفاده میکنی

مثلا اگه اسم فیلد تاریخت باشه shamsi به این صورت کار میکنی

کد:
select dbo.separate_date(shamsi)as shamsi from tablename
چون این تابع جزء توابع پیش فرض نیست و خودتون نوشتین باید قبلش hinstanceش رو ذکر کنین که همون dbo هست
مبین جان یک دنیا ممنون