根据不同的周开始和结束日期获取数据[重复]
Posted
技术标签:
【中文标题】根据不同的周开始和结束日期获取数据[重复]【英文标题】:Get data based on different week start and end dates [duplicate] 【发布时间】:2018-12-06 07:29:58 【问题描述】:<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Data</title>
</head>
<body>
<table border=1>
<tr>
<td bgcolor=silver class='medium'>name</td>
<td bgcolor=silver class='medium'>last_name</td>
<td bgcolor=silver class='medium'>email</td>
<td bgcolor=silver class='medium'>start_date</td>
<td bgcolor=silver class='medium'>end_date</td>
</tr>
<tr>
<td class='normal' valign='top'>venky</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-06-25</td>
<td class='normal' valign='top'>2018-07-01</td>
</tr>
<tr>
<td class='normal' valign='top'>raki</td>
<td class='normal' valign='top'>asd</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-06-25</td>
<td class='normal' valign='top'>2018-07-01</td>
</tr>
<tr>
<td class='normal' valign='top'>rakesh</td>
<td class='normal' valign='top'>raki</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-06-25</td>
<td class='normal' valign='top'>2018-07-01</td>
</tr>
<tr>
<td class='normal' valign='top'>venkatesh</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-06-25</td>
<td class='normal' valign='top'>2018-07-01</td>
</tr>
<tr>
<td class='normal' valign='top'>jhon</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-06-25</td>
<td class='normal' valign='top'>2018-07-01</td>
</tr>
<tr>
<td class='normal' valign='top'>venky</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-02</td>
<td class='normal' valign='top'>2018-07-08</td>
</tr>
<tr>
<td class='normal' valign='top'>raki</td>
<td class='normal' valign='top'>asd</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-02</td>
<td class='normal' valign='top'>2018-07-08</td>
</tr>
<tr>
<td class='normal' valign='top'>rakesh</td>
<td class='normal' valign='top'>raki</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-02</td>
<td class='normal' valign='top'>2018-07-08</td>
</tr>
<tr>
<td class='normal' valign='top'>venkatesh</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-02</td>
<td class='normal' valign='top'>2018-07-08</td>
</tr>
<tr>
<td class='normal' valign='top'>jhon</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-02</td>
<td class='normal' valign='top'>2018-07-08</td>
</tr>
<tr>
<td class='normal' valign='top'>venky</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-09</td>
<td class='normal' valign='top'>2018-07-15</td>
</tr>
<tr>
<td class='normal' valign='top'>raki</td>
<td class='normal' valign='top'>asd</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-09</td>
<td class='normal' valign='top'>2018-07-15</td>
</tr>
<tr>
<td class='normal' valign='top'>rakesh</td>
<td class='normal' valign='top'>raki</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-09</td>
<td class='normal' valign='top'>2018-07-15</td>
</tr>
<tr>
<td class='normal' valign='top'>venkatesh</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-09</td>
<td class='normal' valign='top'>2018-07-15</td>
</tr>
<tr>
<td class='normal' valign='top'>jhon</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-09</td>
<td class='normal' valign='top'>2018-07-15</td>
</tr>
<tr>
<td class='normal' valign='top'>venky</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-16</td>
<td class='normal' valign='top'>2018-07-22</td>
</tr>
<tr>
<td class='normal' valign='top'>raki</td>
<td class='normal' valign='top'>asd</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-16</td>
<td class='normal' valign='top'>2018-07-22</td>
</tr>
<tr>
<td class='normal' valign='top'>rakesh</td>
<td class='normal' valign='top'>raki</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-16</td>
<td class='normal' valign='top'>2018-07-22</td>
</tr>
<tr>
<td class='normal' valign='top'>venkatesh</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-16</td>
<td class='normal' valign='top'>2018-07-22</td>
</tr>
<tr>
<td class='normal' valign='top'>jhon</td>
<td class='normal' valign='top'>sai</td>
<td class='normal' valign='top'>ascd@gmail.com</td>
<td class='normal' valign='top'>2018-07-16</td>
<td class='normal' valign='top'>2018-07-22</td>
</tr>
</table>
</body></html>
我有这样的数据。如果我选择 Start_date:'2018-06-25' 和 end_date:'2018-07-01'。我应该得到那一周的数据。如果选择一周中的任何开始日期和结束日期。我应该得到那几周的数据。示例 Start_date:'2018-06-28' 和 end_date:'2018-07-09'。如果我选择 Start_date:'2018-06-25' 和 end_date:'2018-07-11'。我应该得到三周的数据。这可能吗?
【问题讨论】:
您需要一个 SQL 查询来实现它吗?看看WHERE子句 我做了,但我只得到了一周的数据。但如果我想要 3 或 4 周的数据呢?如何做到这一点,用户可以选择一周内的任何日期 【参考方案1】:SELECT * FROM yourTable WHERE start_date::date > '2018-06-25' and end_date::date < '2018-07-01'
【讨论】:
【参考方案2】:您应该在where
子句中使用>=
和<=
而不是Start_date:'2018-06-28' and end_date:'2018-06-09'
,它可能看起来像这样:
select * from your_table where Start_date >= '2018-06-09' and end_date <= '2018-06-28'
【讨论】:
如果使用这个查询,我不会得到任何数据。因为没有 Start_date = '2018-06-28' 和 end_date = '2018-06-09' 的行 @user1510963 这就是我使用>=
和<=
的原因,所以它在这些日期之间
仅当 start_date 和 end_date 在同一周时才有效。如果两者都来自不同的星期,那么它将不起作用。我试过了,但它没有醒来以上是关于根据不同的周开始和结束日期获取数据[重复]的主要内容,如果未能解决你的问题,请参考以下文章
pandas通过DatetimeProperties对象获取日期对象在所在周的周几星期几的名称信息(week name)并生成新的数据列计算不同星期名称下其它数据列的均值