PDA

View Full Version : گرفتن یک زیر رشته در کد select



neda555
شنبه 15 مهر 1391, 01:46 صبح
سلام دوستان من چه طور میتونم در کد سلکت، substring تاریخ(سال وماه) را بگیرم و با یه مقدار مقایسه کنم؟
مثلا کدی که نوشتم به این شکله درستش چه جوریه ؟
SqlCommand cmd2 = new SqlCommand("select * from TNews Where SUBSTRING(NewsDate,0,6)= '"+ date1 + "'", con);

amirzandi
شنبه 15 مهر 1391, 09:58 صبح
شما از Table که دارید چه مواردی رو می خواین Select کنین؟

neda555
شنبه 15 مهر 1391, 10:07 صبح
newsTitle,NewsPicture,NewsDate,Newscontent و هر چی لازمه روی صفحه بزارم با این شرط که تاریخش همون شرطی باشه که گذاشتم از اونجایی که من فقط ماه و سال را میخوام جدا کنم باید از زیررشته استفاده کنم

amirzandi
شنبه 15 مهر 1391, 10:12 صبح
منظورم این بود که condition مربوط به Select شما چی هست؟ مثلا می خواین بین 2تا تاریخ Select کنین؟؟؟

neda555
شنبه 15 مهر 1391, 10:15 صبح
خیر همون جور که گفتم خدمتتون مقایسه هست میخوام اونایی را انتخاب کنم که مثل data1 هستن

amirzandi
شنبه 15 مهر 1391, 10:22 صبح
والا من متوجه منظور شما نمی شم ولی کد زیر به شما کمک از کالم datetime فقط ماه و سال رو می ده:

SELECT
CONVERT(CHAR(4), date,100)+ CONVERT(char(4), date, 120)
FROM Table

fakhravari
شنبه 15 مهر 1391, 10:25 صبح
فکر کنم بیشتر این کد مد نظر شماست.
با Left یا Right
مثال
WHERE (LEFT(News_News.PublishDate, 10)

neda555
شنبه 15 مهر 1391, 10:27 صبح
ممنون ،دوست عزیز amirzandi (http://barnamenevis.org/member.php?199599-amirzandi) عجیبه من که خیلی واضح دارم میگم چی میخوام من تاریخ را در جدولم دارم و می خوام اطلاعات خبر هایی را بگیرم که مثلا تاریخشون 1391/01 هست کاری با تاریخ سیستم ندارم
ممنون آقای فخرآوری امتحان میکنم ببینم جواب میده یا نه publishdate چیه؟

amirzandi
شنبه 15 مهر 1391, 10:32 صبح
شما تاریخ رو توی دیتابیس میلادی ذخیره می کنین؟

amirzandi
شنبه 15 مهر 1391, 10:35 صبح
Dim FromDate as DateTime = DateTime.Now.Tostring("yyyy/MM/01")
Dim ToDate as DateTime = FromDate.AddMonth(1)
ToDate = ToDate.ToString("yyyy/MM/01")
dim cmd as string = "SELECT * FROM Table WHERE (date >= @d) and (date <@d1)"
'@d = FromDate
'@d1 = ToDate

hamidkh
شنبه 15 مهر 1391, 11:08 صبح
همون SUBSTRING مگه مشکلش چیه؟؟

neda555
شنبه 15 مهر 1391, 11:21 صبح
چیزی بهم نشون نمیده

hamidkh
شنبه 15 مهر 1391, 11:34 صبح
عجیب ولی باید جواب بده. قطعا اشتباه میکنید. وگرنه من عین همین کار رو با SUBSTRING انجام دادم و جواب داد

fakhravari
شنبه 15 مهر 1391, 11:41 صبح
چرا این همه سوال پیچوندین
اصلا یه نمونه تاریخ که توی دیتابیس ذخیره شده بزارید تا بگم چطوری کار کنید. :قهقهه:

neda555
شنبه 15 مهر 1391, 12:04 عصر
1391/01/02
این یه نمونه تاریخ ذخیره شده هست مثلا

amirzandi
شنبه 15 مهر 1391, 12:06 عصر
شما فیلدتون توی دیتابیس از نوع nvarchar هست یا datetime ؟

neda555
شنبه 15 مهر 1391, 12:12 عصر
nvarchar هستش

amirzandi
شنبه 15 مهر 1391, 12:20 عصر
substring رو از 0 تا 7 بزارین.

fakhravari
شنبه 15 مهر 1391, 12:34 عصر
نمونه.
SELECT region_name, SUBSTRING (region_name, 2, 3) as substring_name
FROM dbo.region
ORDER BY 1

neda555
شنبه 15 مهر 1391, 12:45 عصر
ممنون دوستان کدم درست بود من از peager استفاده کرده بودم که پارامتر مشترک با دیتا لیستم داشت و باعث میشد چیزی نشون نده :لبخند:
از همگی بابت وقتی که گذاشتن تشکر میکنم

saeed_sho
شنبه 15 مهر 1391, 18:25 عصر
تاریخو میلادی ذخیره کنید بعد این کوئری رو بزنید و تاریخ جاری میلادی رو بعنوان پارامتر بهش پاس بدین
Select column1, Column2 From Table1
Where YEAR(date) = YEAR(@today) And MONTH(date) = MONTH(@today)