我有一个涉及创建财产促销的应用程序。我的数据库表中有以下属性:-
create_table :property_promotions do |t|
t.string :title
t.date :start_date
t.date :end_date
t.time :start_time
t.time :end_time
t.timestamps null: false
end
现在,我想创建日期和时间都唯一的property_promotions。 不要知道如何验证每个property_promotions在日期和时间上都不重叠。
尝试以下查询,但未能创建具有日期和时间的唯一记录。
PropertyPromotion.where("(DATEDIFF(start_date, ?) * DATEDIFF(?, end_date)) >= 0 AND (TIMEDIFF(start_time, ?) * TIMEDIFF(?, end_time)) > 0", end_date, start_date, end_time, start_time)