راکت
حل شده

مقایسه زمان در دیتابیس

5 پاسخ

سلام.
من مقدار زمانم رو به صورت timestamp توی جدولم ذخیره کردم.

مثلا: ۱۴۰۰/۰۸/۰۴ ۱۳:۰۷:۰۰ تو دیتابیس این ذخیره شده 1634733334

خب حالا سوال دارم میتونم خروجی رو جوری تنظیم کنم که مثلا اونایی رو که برج هشت در همه سال ها ثبت نام کردن رو select کنم؟
یا ثبت نامی های روز یکم همه ماها و سالها؟

سوال بعدیم اینکه بهترین فرمت برا ذخیره زمان در دیتابیس چیه و چطوری می تونیم عملیات مقایسه ای انجام بدیم؟

@kazemi @gomnam @mhyeganeh @hesammousavi @ali.bayat

ثبت پرسش جدید

پاسخ‌ها

5
محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

بهترین پاسخ

به نظرم بهترین فرمت ذخیره سازی تاریخ و زمان فیلد با نوع Datetime یا Date خالی هست و نکته اش هم اینه که حتما باید میلادی باشه. مثالش هم میشه فیلدهای created_at و updated_at در لاراول.

حالا برای کوئری گرفتن داده ی مورد نظرتون باید مسئله رو بشکنید به اجزای کوچک و با چند تا دستور و ابزاری که mysql و eloquent در اختیارتون می‌ذارن مثل whereDate و whereBetween و ... و ترکیبش با پکیج تبدیل تاریخ جلالی به میلادی به نتیجه مطلوب برسید.

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

شماتاریخ را به صورت تایم استمپ ایرانی ذخیره نکنید تاریخ رامیلادی ذخیره کنید شبیه فیلدcreated_atلاراول ذخیره کنیدو برای مقایسه از متدwhereDateاستفاده کنید

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

البته متدهای دیگری هم برای مقایسه تاریخ وجود داره مثل
whereYear
whereMonth
whereDay

شاید پاسخ شما همین‌جا باشد

کیارش مالکی
کیارش مالکی
@nader.register

تخصص: Backend developer

@hosseinshirinegad98 @mhyeganeh
منظورتونه اینکه به فرمت 2021/10/26 16:55:00 ذخیره کنم؟؟

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

@nader.register
بصورت دقیق تر مثالش میشه اینجوری:

2021-10-26 09:59:17

و وقتی در مایگریشن type ستون رو روی datetime تنظیم کنید خودش اتومات با همین فرمت ذخیره می‌کنه.

$table->datetime('your_col_name');

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام