【问题标题】:Any idea how can i retrieve dates that belong to the week before from today's date?知道如何从今天的日期检索属于前一周的日期吗?
【发布时间】:2021-03-09 11:47:29
【问题描述】:

我有一个带有 ID 和日期的“日期”表:(日期在时间戳中)

id start_date
1  2020-11-23 11:00:00
2  2020-11-23 12:00:00
3  2020-11-15 10:00:00
4  2020-11-24 09:00:00
5  2020-11-11 09:00:00
6  2020-11-24 13:00:00
7  2020-11-25 15:00:00

代码应该返回 ids:

id
 1
 2
 4
 6
 7

我尝试了以下方法:

select id
from dates
where dates.start_date > DATE_SUB(DATE(NOW()), INTERVAL DAYOFWEEK(NOW())+6 DAY) 
AND dates.start_date <= DATE_SUB(DATE(NOW()), INTERVAL DAYOFWEEK(NOW())-1 DAY)

但它似乎没有工作。我遇到语法错误:

错误:“DAYOFWEEK”或附近的语法错误

考虑今天的日期:2020-11-26 我也在使用 PostgreSQL!

【问题讨论】:

  • 你在哪里找到in the manual 的函数date_sub()dayofweek()
  • 当您说从前一周开始时,您的意思是从前一周开始,是前一周的周一至周日还是前周日至周六?有些国家/地区从星期日开始计算周数,有些在星期一开始计算,我认为有些在其他日子。
  • 1 周后
  • 我在堆栈溢出时发现了这里的函数,因为有人问了同样的问题,这就是给出的答案

标签: sql postgresql date


【解决方案1】:

你似乎想要:

select id
from t
where t.start_date > current_date - interval '7 day';

或者,也许——取决于你如何定义“周”:

where t.start_date >= date_trunc('week', current_date) - interval '7 day' and
      t.start_date < date_trunc('week', current_date)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-26
    • 2016-03-06
    相关资源
    最近更新 更多