请求SQL结果后如何订购?

问题描述

是否可以在sql结果交付后对其进行排序?到目前为止,我有两个值。我的代码当前返回结果,并且可以按日期ORDER BY date ASC进行排序 感兴趣的数据库条目是。

| date       | weeks |
| 2020-07-01 | 2     | 
| 2020-07-01 | 3     |
| 2020-07-01 | 5     |

周代表下一次约会有几周。因此2020-07-21、2020-08-03等(我可以返回这些值)。 order by必须能够对日期进行排序,并考虑到从最近的一周到最远的一周的星期值。

我尝试仅使用名为final_date的新字段更新数据库,尽管这会使所有事情变得混乱。

返回数据后,我可以使用以下方法找到新日期:

$addWeeks = strtotime('+'.$numberOfWeeks.' weeks',strtotime($last));

尽管如此,我找不到一种方法来按该新值对结果进行排序。

解决方法

order by必须能够对日期进行排序,并考虑从最近的一周到最远的一周的周值。

我想你想要

df['date'] = pd.to_datetime(df['date'])

cutoff = pd.to_datetime('2019-01-10')
mask = df['date'] >= cutoff

customers_before = df.loc[~mask,'customer_id'].unique().tolist()
customers_after = df.loc[mask,'customer_id'].unique().tolist()

result = set(customers_after) - set(customers_before)

请注意,这假设列select t.* from mytable t order by t.date + interval t.weeks week 的数据类型为date,而不是字符串;否则,您需要先将其转换为日期,例如使用date