PDA

View Full Version : دربازه دو زمان



abasfar
چهارشنبه 24 شهریور 1389, 11:35 صبح
سلام
من میخواستم شرط بگزارم که اگردربازه دو زمان رکوردی وجود داره کد من اجرا کنه ودر ضمن رکوردی زمان را نگهداری میکنه type:datetime است
من این کد را نوشتم که اشتباه است


if(convert(nvarchar ,(select DateEvent from [T_Error]),108) between convert(nvarchar , dateadd(hour,-1,getdate()),108) and convert(nvarchar , getdate(),108) ))

بهزادصادقی
چهارشنبه 24 شهریور 1389, 15:40 عصر
سلام
من میخواستم شرط بگزارم که اگردربازه دو زمان رکوردی وجود داره کد من اجرا کنه ودر ضمن رکوردی زمان را نگهداری میکنه type:datetime است
من این کد را نوشتم که اشتباه است


if(convert(nvarchar ,(select DateEvent from [T_Error]),108) between convert(nvarchar , dateadd(hour,-1,getdate()),108) and convert(nvarchar , getdate(),108) ))




کد شما چند تا مشکل داره. اولیش این است که این کد:



select DateEvent from [T_Error]


یک لیست از تاریخ ها را به شما باز خواهد گرداند، نه فقط یک تاریخ خاص. ولی طوری که شما دارید از آن استفاده می کنید (مقایسه با استفاده از between) فقط وقتی کار می کند که شما فقط یک تاریخ خاص را داشته باشید.

همچنین، برای مقایسه تاریخ ها شما احتیاج ندارید که اول آنها را به nvarchar تبدیل کنید. می توانید مستقیما آنها را با هم مقایسه کنید.

کد شما و توضیحاتی که داده اید کافی نیست که من بفهمم چه کار می خواهید بکنید. تا وقتی هم که نفهمم، نمی توانم به شما کمک کنم. مشکل پست قبلی تان هم همین بود. کد شما آنقدر مشکل داشت که نمی شد فهمید می خواهید چه کار کنید. و بعد هم شما گفتید از شما نخواهیم در مورد اینکه کد باید چه کار کند توضیح دهید. در نتیجه کمک به شما غیر ممکن شد.

این پست حاضر شما خیلی بهتر است. چون زوم کرده اید فقط روی یک قسمت کوچک از مسئله و کمی هم توضیحات داده اید. ولی من شخصا هنوز نمی فهم صورت مسئله چیست. هر چه توضیحات بیشتر بدهید، شانس اینکه یک نفر بتواند به شما کمک کند مشکلتان را حل کنید را بالا تر می برید.