یک جدول به نام orders بسازید که ستونی به اسم created_at داشته باشد با مقدار پیشفرض CURRENT_TIMESTAMP و سپس یک پرسوجو بنویسید که تمام سفارشهای ثبتشده در 24 ساعت گذشته را نمایش دهد.
2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:55 0.0
برای حل این مسئله از MySQL استفاده کنید: ابتدا با دستور CREATE TABLE ستونی از نوع TIMESTAMP یا DATETIME تعریف کنید و DEFAULT CURRENT_TIMESTAMP را قرار دهید تا هنگام وارد کردن رکورد زمان بهصورت خودکار ثبت شود. سپس با یک SELECT و شرط WHERE از عبارتهایی مانند created_at >= CURRENT_TIMESTAMP - INTERVAL 24 HOUR یا created_at >= NOW() - INTERVAL 1 DAY استفاده کنید تا رکوردهای 24 ساعت اخیر را فیلتر کنید؛ میتوانید از توابع DATE(), CURDATE() یا NOW() نیز برای مقایسه تاریخ/زمان بهره ببرید. نکته: بسته به نیاز به دقت زمانی TIMESTAMP یا DATETIME را انتخاب کنید و به منطقه زمانی سرور دقت کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای حفظ زمان ثبت سفارش، ایجاد ستونی به نام created_at از نوع TIMESTAMP با DEFAULT CURRENT_TIMESTAMP یک راه استاندارد است. اگر میخواهید با دقت زمانی و سازگاری با منطقه زمانی بهتر کار کنید، TIMESTAMP معمولاً مناسب است چون به صورت UTC ذخیره میشود و تبدیل TZ را مدیریت میکند؛ در غیر این صورت DATETIME را میتوانید استفاده کنید و زمان را از سمت اپلیکیشن بدهید. برای نمایش سفارشهای 24 ساعت اخیر، از شرط created_at >= NOW() - INTERVAL 24 HOUR استفاده کنید و افزودن ایندکس روی created_at میتواند کارایی پرسوجو را بهبود دهد. همچنین به تفاوت NOW() و CURRENT_TIMESTAMP توجه کنید و اگر نیاز به بهروزرسانی زمان ثبت هنگام ویرایش وجود داشت، از ON UPDATE CURRENT_TIMESTAMP بهره ببرید.
گزارش