PDA

View Full Version : سوال: تبدیل تاریخ بدون اعشار به با اعشار مثل 850224 تبدیل کند به 24/02/1385



ali_abbasi22145
دوشنبه 17 اسفند 1388, 11:35 صبح
سلام
اسکریپتی که:
1- اگر 6 رقمی باشد مثل 850224 تبدیل کند به 24/02/1385
2- اگر 8 رقمی باشد مثل 13721214 تبدیل کند به 14/12/1372

حسین شهریاری
دوشنبه 17 اسفند 1388, 12:17 عصر
سلام

عمومااین جور کارا توی Application با اعمال Mask انجام میشه!
ولی کد زیر به شما کمک میکنه.برای اولی من مینویسم ، دومیشا خودتون تعمیم بدین.

Select '13'+Substring(Strdate,1,2)+'/'+Substring(Strdate,3,2)+'/'+Substring(Strdate,5,2) from yourtable

ASKaffash
دوشنبه 17 اسفند 1388, 13:19 عصر
سلام
از تابع استفاده کنید :


Create Function FixDate(@YYMMDD Char(6))
Returns Char(8) As
Begin
Return Substring(@YYMMDD,1,2)+'/'+Substring(@YYMMDD,3,2)+'/'+Substring(@YYMMDD,5,2)
End

supporter
دوشنبه 17 اسفند 1388, 15:07 عصر
Declare @MyDate VARCHAR(8)
Set @MyDate = '13851201'
Select Case
WHEN Len(@MyDate) = 6 THEN '13' +Substring(@MyDate,1,2)+'/'+Substring(@MyDate,3,2)+'/'+Substring(@MyDate,5,2)
WHEN Len(@MyDate) = 8 THEN Substring(@MyDate,1,4)+'/'+Substring(@MyDate,5,2)+'/'+Substring(@MyDate,7,2)
END AS MyDateStr

ali_abbasi22145
چهارشنبه 19 اسفند 1388, 10:04 صبح
Declare @MyDate VARCHAR(8)
Set @MyDate = '13851201'
Select Case
WHEN Len(@MyDate) = 6 THEN '13' +Substring(@MyDate,1,2)+'/'+Substring(@MyDate,3,2)+'/'+Substring(@MyDate,5,2)
WHEN Len(@MyDate) = 8 THEN Substring(@MyDate,1,4)+'/'+Substring(@MyDate,5,2)+'/'+Substring(@MyDate,7,2)
END AS MyDateStr



سلاو تشکر از همه
مشکلم با راهنمایی جمیع دوستان حل شد.
اما با روش شما چطور تمام رکوردهای فیلدdate بانکم را اصلاح کنم و در همان فیلدهای date بریزم.
چون در مثال شما تاریخ یکی است و ثابت است و من nتا رکورد دارم؟

supporter
چهارشنبه 19 اسفند 1388, 12:00 عصر
Update TableName
SET ActionDate = Case
WHEN Len(ActionDate) = 6 THEN '13' +Substring(ActionDate,1,2)+'/'+Substring(ActionDate,3,2)+'/'+Substring(ActionDate,5,2)
WHEN Len(ActionDate) = 8 THEN Substring(ActionDate,1,4)+'/'+Substring(ActionDate,5,2)+'/'+Substring(ActionDate,7,2)
Else ActionDate
END

محمد سلیم آبادی
چهارشنبه 19 اسفند 1388, 12:03 عصر
UPDATE t
SET column_name = CASE WHEN LEN(column_name) = 6 THEN SUBSTRING(column_name, 1 , 2) + '/' + SUBSTRING(column_name, 3 , 2) + '/' + SUBSTRING(column_name,5,2) ELSE SUBSTRING(column_name,1,4) + '/' + SUBSTRING(column_name,5,2) + '/' + SUBSTRING(column_name,7,2) END
FROM your_table AS t
WHERE 1=1