PDA

View Full Version : بدست اوردن تاریخ یک ماه قبل



sara_mp
پنج شنبه 12 مرداد 1391, 11:31 صبح
با سلام
من در بانک یه سری اخبار ذخیره میکنم که هرکدوم یه فیلد تاریخ داره که به فرمت مثلا 1391/02/21 به صورت nvarchar ذخیره میشن حالا میخام یه دستور select بنویسم که اونایی که از یک ماه قبل تاکنون ذخیره شده اند را نشون بده . اگه راهنمایی کنین ممنون میشم .

oliya24
پنج شنبه 12 مرداد 1391, 12:39 عصر
با سلام
من در بانک یه سری اخبار ذخیره میکنم که هرکدوم یه فیلد تاریخ داره که به فرمت مثلا 1391/02/21 به صورت nvarchar ذخیره میشن حالا میخام یه دستور select بنویسم که اونایی که از یک ماه قبل تاکنون ذخیره شده اند را نشون بده . اگه راهنمایی کنین ممنون میشم .
سلام ببین دوست من برای بدست اوردن تاریخ 1 ماه قبل از این کد استفاده کن به نتیجه هم میرسی فقط کمی خودت باید نوه نگارشش رو تغییر بدی

select


DATEADD(month,-1,'2/15/2010')

در ضمن یادم رفت بگم پارامتر دوم همون پارامتر ورودی شماست که باید یک ماه به عقب برگشت داده بشه
موفق باشید

حمیدرضاصادقیان
یک شنبه 15 مرداد 1391, 10:04 صبح
سلام.
شما وقتی داری به صورت Nvarchar کار میکنی نمیتونی از توابع تاریخ استفاده کنی اونم برای تابع فارسی.!!
کافیه مثل رشته باهاش برخورد کنی.
و در شرط Where اونو با یک ماه قبل مقایسه کنی همین.!
مثلا

select * from table1
Wehre date1 between '1391'01/01' and '1391/02/01'

sara_mp
دوشنبه 16 مرداد 1391, 11:23 صبح
من همین تاریخ یک ماه قبل رو نمیتونم بدست بیارم از روی رشته ای که در بانک ذخیره شده. این دو تا تاریخی که نوشتین یکیش تاریخ روز است ویکیش تاریخ یک ماه قبل که هر روز هم تغییر میکنه.

baktash.n81@gmail.com
دوشنبه 16 مرداد 1391, 14:46 عصر
فکر کنم روش های متعددی برای اینکار وجود داشته باشه ... اما روش استاندارد برای نگهداری تاریخ استفاده از نوع DateTime هست در صورتی که از این نوع استفاده می کردید کلی تابع برای کار بر روی تاریخ ها در اختیار شما قرار می گرفت ...

حالا خودتون باید همچین تابعی رو بنویسید روش اول اینکه تاریخ رو به صورت عدد در بیاریم بعد 30 تا ازش کم کنیم دوباره به تاریخ تبدیل کنیم ...
روش بعدی اینه که روز و ماه و سال رو با Substring از هم جدا کنیم ...بعد عدد ماه رو تنظیم کنیم بعد دوباره به هم بچسبونیمشون ...
اگه تاریخ رو به صورت 13910516 نگهداشتید می تونید اونو منهای 100 کنید ... البته برای فروردین یه مقداری کارا سخت تره ...