مشاهده نسخه کامل
: انتخاب تاریخ خاص در دستور select
با سلام به دوستان یه سول داشتم
چه جوری می تونم در select بگم رکوردهایی انتخاب بشن که در فیلد تاریخ مقدار ماه آنها مثلا 10 است؟
Bill Gates
13-12-2008, 13:23
سلام
ماه همیشه بین /ماه/ قرار داره اینو قبول داری؟ :31: مثلا روز1/ماه10/سال1387
میتونی اینطوری select کنی :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
peyman1987
13-12-2008, 20:53
سلام
ماه همیشه بین /ماه/ قرار داره اینو قبول داری؟ :31: مثلا روز1/ماه10/سال1387
میتونی اینطوری select کنی :
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من یه مقدار با این فرض شما مشکل دارم البته اگه اجازه هست.
فرمت تاریخ کاملا به سلیقه طراح دیتابیس بستگی داره و الزاما اینجوری نیست. بنظرم این بهتر باید باشه البته یه شرط داره که فیلدتون نوعش Date باشه.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
:10:
Bill Gates
13-12-2008, 21:26
فرمت تاریخ کاملا به سلیقه طراح دیتابیس بستگی داره و الزاما اینجوری نیست. بنظرم این بهتر باید باشه البته یه شرط داره که فیلدتون نوعش Date باشه.
ولی کمتر از date استفاده میکنند :31::31: چون دستی راحت تره حالا هرکی نظری دارد :31:
سلام جان ممنون از راهنمایی ها
حالا من یه سوال دیگه دارم ببنید من می توی یه متغیر مقدار تاریخ رو دارم و می خوام از متغیر مقدار ماه رو جدا کنم می دونم که در دستور SELECT می شه کد زیر رو نوشت
WHERE MONTH(date)=12
یا
SELECT MONTH(date),YEAR(date) FROM
اما استفاده از month برای یه متغیر جواب نمی ده
peyman1987
13-12-2008, 22:32
اگه میشه کوئری کامل رو بزارین با نوع فیلدهاتون.
فکر میکنم ایراد از اینه که date یه کلمه رزرو شده است و شما نمیتونین ازش بعنوان اسم فیلد استفاده کنین مگر اینکه اینجوری بنویسینش `date` فقط توجه کنین که از ' بجای ` استفاده نکنین.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام این کدیه که من استفاده می کنم
حالا می خوام از این متغیر قسمت ماه و سال رو جدا کنم
یا مثلا تاریخ امروز رو می گیرم
$date_today=date('Y-m-d');
و می خوام ماه و سال اون رو جدا کنم
peyman1987
14-12-2008, 21:38
خوب میشه اینجوری نوشت:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام خوب اگر بخوام با تاریخ که توی یه متغیر ذخیره شده این کار رو بکنم پیغام undefined function می ده و مشکل اصلی من همین جاست
David.Jn
15-12-2008, 13:06
سلام این کدیه که من استفاده می کنم
حالا می خوام از این متغیر قسمت ماه و سال رو جدا کنم
یا مثلا تاریخ امروز رو می گیرم
$date_today=date('Y-m-d');
و می خوام ماه و سال اون رو جدا کنم
چرا شما از timestamp استفاده نمیکنید.
کافیه تاریخ وارد شده رو به صورت timestamp در بیارین و اونو تو یه فیلد ذخیره کنید بعد موقع خوندن به راحتی میشه سال و روز و ماه رو از هم تفکیک کرد.
اگه توضیح بیشتری خواستید بگید تا کمکتون کنم.
ولی یه چیزی این توضیجی که دادین زیاد با سوالی که تو پست اول دادین جور در نمیاد.
peyman1987
15-12-2008, 21:10
سلام خوب اگر بخوام با تاریخ که توی یه متغیر ذخیره شده این کار رو بکنم پیغام undefined function می ده و مشکل اصلی من همین جاست
یه کم بیشتر توضیح بدین. متغیر ذخیره شده یعنی چی؟
ببنید مثلا من یه تاریخ رو از کاربر می گیرم و در یه متغیر ذخیره می کنم
یا تاریخ امروز رو در یه متغیر می گیرم و می خوام قسمت ماه اون رو جدا کنم
David.Jn
16-12-2008, 17:15
ببنید مثلا من یه تاریخ رو از کاربر می گیرم و در یه متغیر ذخیره می کنم <br />
یا تاریخ امروز رو در یه متغیر می گیرم و می خوام قسمت ماه اون رو جدا کنم<br />
<br />
ببینید دوست من اینو ببینید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این کد تاریخ جاری سیستم رو برمیگردونه.
به راحتی میشه روز و ماه و سال رو جدا کرد و به راحتی میشه ازش تو کوئری گرفتن ازش استفاده کرد.
فرض بر این میگریم که کاربر وارد کرده 1/1/2009 اونو اینجوری به timestamp تیبدل میکنیم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با یه جمع و تفریق ساده میشه تاریخ رو به هجری شمسی تبدیل کرد.
بهتره تابع رو به صورت یه timestamp با تایپ فیلد int تو دیتابیس ذخبره کنی و تو کوئری گرفتن اونو به راحتی به تفکیک روز و ماه و سال نشون بدی.
ولی اگه میخوای برحسب یه ماه خاص نشون بدی بهتره هر کدومشو بریزی تو یه فیلد جداگانه و ...
peyman1987
17-12-2008, 11:37
ببنید مثلا من یه تاریخ رو از کاربر می گیرم و در یه متغیر ذخیره می کنم
یا تاریخ امروز رو در یه متغیر می گیرم و می خوام قسمت ماه اون رو جدا کنم
عزیزم شما گفتی توی سوالت که میخوای از دیتابیس اینجوری بخونی. حالا مثل اینکه قصدت چیزه دیگه ایه و میخوای توی کد php این کار رو انجام بدی. خب اینجوری کاری که دوستمون گفتن جواب میده.
با سلاام و تشکر از همه ی دوستان به خصوص zibatarin nam عزیز
ممنون از راهنمایی دوستان
راستش من اول مشکلم فقط در انتخاب تاریخ در select بود که بعد مشکلاتی دیگه ای بهش اضافه شد به هر حال از اینکه عنوان تاپیک رو با دقت انتخاب نکردم ببخشید
حالا من یه مشکل دیگه هم دارم که اگر کمک کنید واقعا عالیه
من حالا عددی که از کاربر به عنوان ماه گرفتم رو یکسری محاسبات روش انجام دادم و حالا می خوام نتیجه ی محاسبه رو به کاربر نشون بدم اما نه به صورت عدد به صورت ماه کامل اما چه جوری؟
David.Jn
17-12-2008, 22:56
حالا من یه مشکل دیگه هم دارم که اگر کمک کنید واقعا عالیه من حالا عددی که از کاربر به عنوان ماه گرفتم رو یکسری محاسبات روش انجام دادم و حالا می خوام نتیجه ی محاسبه رو به کاربر نشون بدم اما نه به صورت عدد به صورت ماه کامل اما چه جوری؟ اگه درست متوجه شده باشم میخوای به صورت July و September نشون بدی. واسه این میتونید از یه switch case استفاده کنی . واسه اطلاعات بیشتر یه گوگل بزن ببین چه خبره.
سلام ممنون
پس برای این کار هیچ تابعی نیست و تنها راهش caseهست
zibatarin namجان می شه یه لطفی کنی و در مورد کدی که نوشتی یه توضیحی هم بدی پیشاپیش ممنون
David.Jn
18-12-2008, 23:10
سلام ممنون
پس برای این کار هیچ تابعی نیست و تنها راهش caseهست
درست نمیدونم شما میخوای چکار کنی ولی اگه تو خود gmktime آرگومان ماه رو با حرف بزرگ (M) بزاری خروجی رو برات به صورت نوشتاری ماه نشون میده(Jan).
zibatarin namجان می شه یه لطفی کنی و در مورد کدی که نوشتی یه توضیحی هم بدی پیشاپیش ممنون
چشم
ببینید timestap یه مدل نشان دادن زمان توی سیستم یونیکس.
gmmktime میاد یه این عدد رو میگیره و یه عدد صحیح بر جسب ثانیه میده که مبدا آن سال 1970/ 1/ 1
فرقش هم با mkitime اینه که این تابع خروجی که میده بر حسب GMT و سرور که هر جایی باشه برحسب Time Zone خروجی میده
برای گرفتن timestamp هم به این صورت عمل میکینم:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حالا میرسیم به تابع gmdate:
این تابع دوتا ورودی داره که آرگومان دومی اختیاری ولی اگه بخوای برحسب تاریخ خاصی نمایش بده باید اون آرگومان اختیاری هم باید داده بشه.
مثل هممون نمونه بالا:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.