我最近从另一个开发人员那里接手了一些工作,并试图了解为什么特定的 sql 查询不适用于某些时间戳,更具体地说是同一日期的时间戳,sql 查询是:
select FROM_UNIXTIME(order_time,'%Y.%m.%D') as order_time,
order_time as timealias
from orders
where order.id ='.$user->id.'
group by FROM_UNIXTIME(order_time,'%Y.%m.%D')
order by timealias desc
这个想法是订单按日期分组以供用户查看,如果日期在不同的日子。
这工作正常:
03/08/2012, 15:10:30 (Unix Timestamp: 1344006630)
04/08/2012, 12:10:30 (Unix Timestamp: 1344082230)
但是,如果他们在同一天但在不同的时间,那么它会在表格中显示第一个订单而不是第二个。
03/08/2012, 15:10:30 (Unix Timestamp: 1344006630)
03/08/2012, 17:30:25 (Unix Timestamp: 1344015025)
我的理论是,它不会将第二个条目的日期识别为与第一个条目的匹配,但由于该日期已被使用,因此它会中断,或类似的结果。但考虑到数据库不是我的强项,这是一个猜测。
如果有人知道它为什么会这样,我真的很感激一些见解。