ورود

View Full Version : تبديل تاريخ به تاريخ 8 كاراكتري



smakhavan
پنج شنبه 09 اردیبهشت 1389, 13:34 عصر
آيا udf ي وجود داره كه بتوان تاريخ را به تاريخ استاندارد 8رقمي تبديل كرد؟

مثلا 89/2/1 را به 89/02/01 تبديل كنه

smakhavan
شنبه 11 اردیبهشت 1389, 14:55 عصر
يعني راهي وجود نداره؟
يه ديتابيس دارم كه از قبل وارد شده و تاريخ ها هم به صورت 8 كاراكتري و هم به صورت 6 كاراكتري و حتي كامل‌تر بگم 10 كاراكتري هم وجود داره حالا بخواهيم همه‌اش را به صورت يكسان تبديل كنيم چه بايد كرد؟

مثلا
89/2/1
89/2/01
89/02/1
1389/2/1
مثلا تبديل بشوند به
1389/02/01

محمد سلیم آبادی
شنبه 11 اردیبهشت 1389, 15:25 عصر
يعني راهي وجود نداره؟
يه ديتابيس دارم كه از قبل وارد شده و تاريخ ها هم به صورت 8 كاراكتري و هم به صورت 6 كاراكتري و حتي كامل‌تر بگم 10 كاراكتري هم وجود داره حالا بخواهيم همه‌اش را به صورت يكسان تبديل كنيم چه بايد كرد؟

مثلا
89/2/1
89/2/01
89/02/1
1389/2/1
مثلا تبديل بشوند به
1389/02/01

با استفاده از توابع T-SQL میتوانید این تغییرات را اعمال کنید:


declare @d varchar(10)
set @d='89/1/1'
select @d

-- 89/1/1
select case when len(PARSENAME(replace(@d,'/','.'),3))=1 then '0'+PARSENAME(replace(@d,'/','.'),3)+'/' else PARSENAME(replace(@d,'/','.'),3)+'/'end
+case when len(PARSENAME(replace(@d,'/','.'),2))=1 then '0'+PARSENAME(replace(@d,'/','.'),2)+'/' else PARSENAME(replace(@d,'/','.'),2)+'/' end
+case when len(PARSENAME(replace(@d,'/','.'),1))=1 then '0'+PARSENAME(replace(@d,'/','.'),1) else PARSENAME(replace(@d,'/','.'),1) end

-- 89/01/01