سؤال

سؤالي هو:

على افتراض أن لدينا Calendar_table مع Unix Datestamp Date_Column ، أريد استرداد الحدث بأقرب من تاريخ اليوم.

لذلك ، على سبيل المثال إذا لم يكن هناك حدث اليوم ، احتفظ بأقربها بناءً على تاريخه!

محدث

ربما أحتاج إلى أن أكون أكثر وضوحًا ، فأنا بحاجة إلى استرداد ليس فقط حدثًا واحدًا ، ولكن جميع الأحداث في الطاولة مع نفس التاريخ ، الأقرب إلى تاريخ اليوم!

شكرا كلكم يا رفاق! ؛-)

هل كانت مفيدة؟

المحلول

SELECT * FROM `calendar_table` WHERE `date_column` = (SELECT `date_column` FROM `calendar_table` ORDER BY ABS(`date_column` - UNIX_TIMESTAMP()) ASC LIMIT 1)

نصائح أخرى

SELECT *
FROM `calendar_table`
ORDER BY ABS(`date_column` - UNIX_TIMESTAMP()) DESC
LIMIT 1

ما يمكنك فعله هو تحديد الفرق بين تاريخ اليوم وتاريخ الحدث ، وحدد أصغر نتيجة.

أولا حدد الفرق مثل هذا:
SELECT DATEDIFF(EventDate, Now()) As Datediff FROM calendar
أو إذا كنت ترغب في العثور على أحداث في الماضي أيضًا:
SELECT Abs(DATEDIFF(EventDate, Now())) As Datediff FROM calendar

ثم فقط اطلب من هذا الحقل وأخذ أول واحد من القائمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top