PDA

View Full Version : سوال: تبديل تاريخ شمسي كه در يك فيلد NVarchar به شكلهاي 1386/12/1 به 1/12/1386 چيست؟



ali_abbasi22145
سه شنبه 03 دی 1387, 09:22 صبح
سلام
تبديل تاريخ شمسي كه در يك فيلد NVarchar به شكلهاي 1386/12/1 به 1/12/1386 چيست؟
فعلا تابعي كار Reverse رشته را انجام مي دهد كارم را راه مي اندازد.

تولائی
سه شنبه 03 دی 1387, 10:53 صبح
ببین این با کمی تغییرات کارتو راه می‌اندازد


create function fn1(@tmp varchar(50))
returns varchar(50)
begin
declare @tmp1 varchar(50)
select @tmp1 = right(@tmp, charindex('/',@tmp, charindex('/',@tmp, 0)+1)-charindex('/',@tmp, 0)-2) + '/' +
substring(@tmp, charindex('/',@tmp, 0)+1, charindex('/',@tmp, charindex('/',@tmp, 0)+1)-charindex('/',@tmp, 0)-1) + '/' +
left(@tmp, charindex('/',@tmp, 0)-1)
return @tmp1
end
go
declare @tmp varchar(50), @tmp1 varchar(50)
select @tmp = '1386/12/1'
select dbo.fn1(@tmp)

تولائی
سه شنبه 03 دی 1387, 10:59 صبح
ممکن‌ه یک چپ به راست کردن ساده هم تو UI کارت رو راه بندازه.

ali_abbasi22145
سه شنبه 03 دی 1387, 11:55 صبح
ممکن‌ه یک چپ به راست کردن ساده هم تو UI کارت رو راه بندازه.

سلام و تشكر
من همان یک چپ به راست کردن ساده را مي خواهم.

ali_abbasi22145
سه شنبه 03 دی 1387, 12:43 عصر
ببین این با کمی تغییرات کارتو راه می‌اندازد


create function fn1(@tmp varchar(50))
returns varchar(50)
begin
declare @tmp1 varchar(50)
select @tmp1 = right(@tmp, charindex('/',@tmp, charindex('/',@tmp, 0)+1)-charindex('/',@tmp, 0)-2) + '/' +
substring(@tmp, charindex('/',@tmp, 0)+1, charindex('/',@tmp, charindex('/',@tmp, 0)+1)-charindex('/',@tmp, 0)-1) + '/' +
left(@tmp, charindex('/',@tmp, 0)-1)
return @tmp1
end
go
declare @tmp varchar(50), @tmp1 varchar(50)
select @tmp = '1386/12/1'
select dbo.fn1(@tmp)



سلام
اسكريپت شما خطا مي دهد و كار نمي كند.

تولائی
سه شنبه 03 دی 1387, 13:44 عصر
پیغام خطا چی‌ه؟

r_mehrizi
یک شنبه 08 دی 1387, 08:57 صبح
اصلاح شده کد به این شکله:




Create function dbo.fnp(@input varchar(50))
returns varchar(50)
begin
declare @tmp1 varchar(50)
select @tmp1 = right(@input,charindex('/',@input,charindex('/',@input, 0)+1)-charindex('/',@input, 0)-1+2)+'/'+
substring(@input,charindex('/',@input, 0)+1,charindex('/',@input,charindex('/',@input, 0)+1)-charindex('/',@input, 0)-1)+'/'+
left(@input,charindex('/',@input, 0)-1)
return @tmp1
end
go

ali_abbasi22145
یک شنبه 08 دی 1387, 09:50 صبح
اصلاح شده کد به این شکله:




Create function dbo.fnp(@input varchar(50))
returns varchar(50)
begin
declare @tmp1 varchar(50)
select @tmp1 = right(@input,charindex('/',@input,charindex('/',@input, 0)+1)-charindex('/',@input, 0)-1+2)+'/'+
substring(@input,charindex('/',@input, 0)+1,charindex('/',@input,charindex('/',@input, 0)+1)-charindex('/',@input, 0)-1)+'/'+
left(@input,charindex('/',@input, 0)-1)
return @tmp1
end
go


با سلام و تشكر
من اسكريپتي مي خواهم كه در SQL QUREY ANALYSER اجرا كنم و ركوردهاي كه حاوي تاريخهاي مشكل دار مي باشند را تصحيح كند.

ali_abbasi22145
یک شنبه 08 دی 1387, 09:56 صبح
سلام
آيا در sql server 2000 دستوري براي Reverse رشته وجود ندارد؟