PDA

View Full Version : مشکل با دستور like



mahsa.n
پنج شنبه 05 اسفند 1389, 10:44 صبح
سلام

من میخوام از دستور like به این صورت استفاده کنم

like' % / % / 4'
ولی نمیشه یعنی بعد از درصد کاراکتری قبول نمیکنه به نظر شما باید چی کار کنم؟

stabesh
پنج شنبه 05 اسفند 1389, 11:47 صبح
مشکل شما اینه که space میان کاراکتر ها گذاشتید

mahsa.n
پنج شنبه 05 اسفند 1389, 11:58 صبح
ممنون که جواب دادی دوست خوبم

like '%/%/4'
مشکل از یه جای دیگست

من وقتی از
like '1389/12/%' یا
%/12/4 استفاده میکنم جواب میده ولی وقتی از
like '1389/%/4' یا
like '%/%/4 استفاده میکنم جواب نمیده

Reza_Yarahmadi
پنج شنبه 05 اسفند 1389, 12:06 عصر
یعنی چی کاراکتر قبول نمیکنه؟ شما هر چندتا کاراکتر و هر چندتا درصد که میخواید بذارید اگر فیلدی دارای الگوی انتخابی شما باشه نمایش داده میشه.
به نمونه زیر توجه کنید.

Declare @Str varchar(max)
Set @Str = '1389/12/05'
Select @Str Where @Str Like '%/%/05'

stabesh
پنج شنبه 05 اسفند 1389, 12:13 عصر
خوب برای تاریخ که تعداد کاراکترهاش مشخصه می تونید از - استفاده کنید فکر کنم بهتر هم باشه
امتحان کنید


like '1389/__/04'

mahsa.n
پنج شنبه 05 اسفند 1389, 12:20 عصر
خوب برای تاریخ که تعداد کاراکترهاش مشخصه می تونید از - استفاده کنید فکر کنم بهتر هم باشه
امتحان کنید


like '1389/--/04'


آخه مشکل از اینجاست که معلوم نیست ماه و روز یک یا دو کاراکتر دارن
تو بانک اینجوری ذخیره میشن: 4/3/1389 نه اینطوری 04/03/1389

mahsa.n
پنج شنبه 05 اسفند 1389, 12:24 عصر
یعنی چی کاراکتر قبول نمیکنه؟ شما هر چندتا کاراکتر و هر چندتا درصد که میخواید بذارید اگر فیلدی دارای الگوی انتخابی شما باشه نمایش داده میشه.
به نمونه زیر توجه کنید.

Declare @Str varchar(max)
Set @Str = '1389/12/05'
Select @Str Where @Str Like '%/%/05'
این ارور رو میده Error in Like operator: the string pattern '1389/%/4' is invalid.

stabesh
پنج شنبه 05 اسفند 1389, 12:25 عصر
ولی باید اگر یک رقمی هستند یک صفر بهش اضافه کرد وگرنه در مرتبسازی هم اشتباه میشه

stabesh
پنج شنبه 05 اسفند 1389, 12:29 عصر
این ارور رو میده Error in Like operator: the string pattern '1389/%/4' is invalid.
این طوری چی


'1389/' + '%' + '/04'

mahsa.n
پنج شنبه 05 اسفند 1389, 12:32 عصر
ولی باید اگر یک رقمی هستند یک صفر بهش اضافه کرد وگرنه در مرتبسازی هم اشتباه میشه

در مرتب سازی هیچ مشکلی ایجاد نمیشه حتی تاریخ های میلادی هم در بانکم همینطوری ذخیره شدن

mahsa.n
پنج شنبه 05 اسفند 1389, 12:35 عصر
این طوری چی


'1389/' + '%' + '/04'

این ارور رو میده Cannot perform 'Mod' operation on System.String and System.String

stabesh
پنج شنبه 05 اسفند 1389, 12:43 عصر
در مرتب سازی هیچ مشکلی ایجاد نمیشه حتی تاریخ های میلادی هم در بانکم همینطوری ذخیره شدن
اونا حتما نوعش datetime هست

mahsa.n
پنج شنبه 05 اسفند 1389, 14:43 عصر
نمیدونم چرا جواب نمیده:متعجب:
__/__/1389 رو که بهش میدم جواب نمیده با اینکه تاریخ ها رو دو رقمی کردم

stabesh
پنج شنبه 05 اسفند 1389, 15:29 عصر
SELECT [Date], SellerListId, PriceListId
FROM dbo.SellerPriceList
WHERE ([Date] LIKE '1389/__/04')

خود sql server وقتی view مینویسی اینو میده شما کدتون رو برای چی استفاده میکنید

mahsa.n
شنبه 07 اسفند 1389, 08:16 صبح
این دستورمه


" DateFa LIKE '1389/12/__'"


که رکوردی رو به من نمیده در صورتیکه همچین تاریخی در بانک دارم