PDA

View Full Version : جدا کردن بخشی از رشته تاریخ در بانک



javan2754
چهارشنبه 21 آذر 1386, 21:38 عصر
سلام.
من یه فیلد تاریخ دارم. حالا می خوام گزارش افرادی که در تاریخ فلان ثبت نام کردن رو نمایش بدم.
روزانه که کاری نداره. می تونم یه مساوی بدم و اونا رو نمایش بدم. اما سال و ماه باید مقداری از رشته رو جدا کنه. توی کد زیر اگه تاریخ با اسلش 10 کاراکتر باشه می خوام 7 کاراکتر سمت چپش رو جدا کنم. ولی ارور میده Missing Error Property اشکال از کجاست؟



if i = 0 then
ADOQuery1.SQL.Add('Select * From Inosx Where Date = ' + (LeftStr(txtDate.Text,7)));

hamidele
چهارشنبه 21 آذر 1386, 22:28 عصر
سلام دوست عزیز!
بهتر نیست از این کد استفاده کنید؟
دقیق نمی دونم اما شاید باید اینطوری بنویسید!



if i = 0 then
ADOQuery1.SQL.Add('Select * From Inosx Where Date = ' + ''''+(LeftStr(txtDate.Text,7)))+'''';




یا شاید هم این




if i = 0 then
ADOQuery1.SQL.Add('Select * From Inosx Where Date = ' + QuotedStr((LeftStr (txtDate.Text,7))));





راستی اینم یه تاپیک تقریبا بی جواب . . .


http://barnamenevis.org/forum/showthread.php?t=87483

Bahmany
یک شنبه 25 آذر 1386, 11:25 صبح
شما چرا از دستور Between استفاده نمی کنید و یا از Function های آماده که برای کار با رشته های تاریخ هستند ؟

SYNDROME
یک شنبه 25 آذر 1386, 18:01 عصر
ADOQuery1.SQL.Add('Select * From Inosx Where Date = ' + (LeftStr(txtDate.Text,7)));


با استفاده از دستور Copy جدا کن.


ADOQuery1.SQL.Add('Select * From Inosx Where Date = ' + Copy(txtDate.Text,1,7));

می توانی از یک بازه تاریخی هم استفاده کنی.
موفق باشید

mehdia86
سه شنبه 27 آذر 1386, 15:01 عصر
با سلام
کد دوستمون که به دستور Copy نوشتن رشته ای که شما می خواهید رو بر می گردونه ولی شما باید از دستور Like بجای مساوی استفاده کنید


ADOQuery1.SQL.Add('Select * From Inosx Where Date Like ' + Copy(txtDate.Text,1,7)+'%');

یک کار دیگه هم که بقیه هم اشاره کردن استفاده از دستور Between هست.
در ضمن بهتره همه اینکارا سمت سرور باشه اگر بانکتون Sql یا مشابه اونه یعنی اینکار رو با یک Stored Procedure انجام بدی

موفق باشید.