PDA

View Full Version : سوال: مقایسه دو رشته و تعیین بزرگتر مساوی بودن انها



htmbarnamenevisl
پنج شنبه 27 خرداد 1389, 18:21 عصر
سلام
من دچار یه مشکل خیلی بزرگ هستم
تو برنامم تاریخ ها رو برای اینکه فارسی در دیتا بیس ذخیرشون کنم به صورت رشته Varchar
تو دیتا بیس ثبت کردم.و الان نیاز دارم دو تا رشته تاریخ با هم مقایسه کنم و ببینم کدوم یکی برگتره
نمیتونم ازاول برنامم عوض کنم تا این بار به صورت DateTime تو دیتابیس ذخیرش کنم!!!!!!1
کمک کنید تو sql تابعی وجود داره که بشه دو تا رشته به صورت مثلا 1389/01/02 و 1389/01/23
بهش داد و تشخیص بزرگتر کوچکتر مساوی بودن بده؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
کمک کنید.اگه تکه کدی دارید ممنون میشم برام بذارید. برنامم تو مراحل پایانیه .نمیتونم از اول همه چیز عوض کنم!!!!

pezhvakco
پنج شنبه 27 خرداد 1389, 18:49 عصر
درود :
اگه رشته شما از چپ به راست برای سال،ماه و روز باشه میشه با یه دستور شرطی ساده مقاسه کرد

SELECT * FROM Table
برای شرطی یکی از حالات زیر =>

where tarikh like '1389/01/02'

where tarikh > '1389/01/02'

اگه تاریخ را از چپ به راست برای روز،ماه و سال داده باشی نمیشه از این روش استفاده کرد .

فکر خوش .

محمد سلیم آبادی
جمعه 28 خرداد 1389, 15:22 عصر
اگه تاریخ را از چپ به راست برای روز،ماه و سال داده باشی نمیشه از این روش استفاده کرد .

خیلی ساده می توانیم جاهای اینها را تعویض کنیم. بعد از همون روش معمولی برای مقایسه استفاده می کنیم.
به این مثال توجه کنید:


declare @t varchar(10)
set @t = '28/3/1389'

select PARSENAME(t,1)+'/'+PARSENAME(t,2)+'/'+PARSENAME(t,3) as [Date]
from (select REPLACE(@t,'/','.') as t)d

ASKaffash
شنبه 29 خرداد 1389, 09:16 صبح
سلام
اینهم تست کنید :


Declare @D1 Char(10),@D2 Char(10)
Select @D1='1389/01/01',@D2='1389/01/31'
Select Case When @D1 Between @D2 and '9999/99/99' Then @D1 Else @D2 End