کیارش مالکی
3 سال پیش توسط کیارش مالکی مطرح شد
5 پاسخ

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

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

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

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

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

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


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
1

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

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


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش مطرح شد
1

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


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 3 سال پیش مطرح شد
1

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


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش مطرح شد
1

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

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


کیارش مالکی
تخصص : Backend developer
@nader.register 3 سال پیش مطرح شد
0

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


محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 3 سال پیش آپدیت شد
1

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

2021-10-26 09:59:17

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

$table->datetime('your_col_name');

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

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