- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用以下查询检索上周数据,但出现错误
Postgres ERROR: syntax error at or near "CAST" Position: 127
不知道哪里出错了:
SELECT count(*), extract(day from createdon) AS period
FROM orders
WHERE servicename =:serviceName AND createdon BETWEEN
CAST(NOW() AS CAST(DATE-EXTRACT(DOW FROM NOW()) AS INTEGER-7)) AND
CAST(NOW() AS CAST(DATE-EXTRACT(DOW from NOW()) AS INTEGER))
GROUP BY extract(day from createdon)
ORDER BY extract(day from createdon);
最佳答案
你把事情搞得太复杂了。要获取上周的数据,只需获取“本周开始”减去 7 天后的所有内容即可:
可以使用 date_trunc('week', current_date)
评估“本周开始” .
如果减去 7 天,您将得到前一周的开始:date_trunc('week', current_date) - interval '7' day
.如果减去 1 天,您将得到前一周的结束。
date_trunc
总是使用星期一作为一周的开始,所以如果你的一周从星期日开始,只需再减去一个,例如date_trunc('week', current_date)::date - 8
将是前一周的星期日
将所有这些放在一起你会得到:
SELECT count(*), extract(day from createdon) AS period
FROM orders
WHERE servicename =:serviceName
AND createdon
between date_trunc('week', current_date)::date - 7
and date_trunc('week', current_date)::date - 1
GROUP BY extract(day from createdon)
ORDER BY extract(day from createdon);
如果您的列是时间戳列,您可以简单地转换 createdon
删除时间部分的日期:
AND createdon::date
between date_trunc('week', current_date)::date - 7
and date_trunc('week', current_date)::date
请注意 createdon
上的常规索引不会用于该条件,您需要在 createdon::date
上创建索引如果您需要性能。
如果你不能(或不想)创建这样的索引,你需要使用不同的东西 between
AND createdon >= date_trunc('week', current_date)::date - 7
AND createdon < date_trunc('week', current_date)::date
(注意使用 <
而不是 <=
`between 正在使用)
另一种选择是将日期信息转换为周和年的组合:
AND to_char(createdon, 'iyyy-iw') = to_char(date_trunc('week', current_date)::date - 7, 'iyyy-iw')
请注意,我使用了 ISO week definition对于上述。如果您使用不同的周编号系统,则需要不同的 format mask对于 to_char()
功能。
关于sql - 从具有创建日期的表中获取上周的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41714363/
我想检索上周和 15 周前的数据。 注意: 仅 15 周前的同一工作日,而不是其间的所有数据。例如,我想要 15 周前的每个星期四的数据。 这是我的 MySQL 表的简化,具有所需的结果。 Stati
我正在寻找一种基于以下条件选择行的方法: 本周 (S-S) 上周 (SS) 我遇到的问题是专门从Sunday-Sunday中选择。 目前我正在使用: SELECT SUM(time) FROM `ti
我有一个包含以下数据的 SQL 表: select day, counter from table1 where day LIKE '%201601%'; +----------+---------+
我有一个包含 3 列的表格:id、updated_at、click_sum。 许多行具有完全相同的 updated_at 值,这使得很难简单地检索数据、按 update_at 排序并在图表中显示总和。
我有一个 orders 表,其中包含 orderID 和 order_date。 我想查询上周、上个月甚至昨天的数据,但是我不知道如何从当前时间中减去时间 我的 order_date 字段是 TIME
在我的 iTunes connect 开发者资料中,我看到了与上周相比的变化,就在它的下方,售出单位数量旁边显示有变化。这个“变化”是什么?这是有多少人卸载了该应用程序? 最佳答案 不是,是上周下载量
我正在做一些统计,我想选择(仅上周)和本周的时间。 本周很简单: $start = strtotime('this week'); $finish = time(); 上周 $start = strt
前言 本文主要介绍的是关于利用python 获取本周,上周,本月,上月,本季的时间,话不多说了,来一起看看实现的方法吧 示例代码: ?
查询当前这周的数据 SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m
我需要设置上周、上个月更改下拉列表的时间段 我正在做 switch (DDL.SelectedIndex) { case 0:
使用此查询: date(timestamp_column) >= SUBDATE(curdate(), WEEKDAY(curdate())) - interval 1 week AND date(t
我的 Android SQLite 数据库中有这个表: CREATE TABLE statistics (subject TEXT, hits INTEGER, fails INTEGER, date
目录 1、总结 一句话总结:使用mktime()函数即可:PHP mktime() 函数用于返回一个日期的 Unix 时间戳。 1、mktime()如何获取昨天的开始时间和结束时间? 2、
我需要显示有关Kibana的报告,该报告将基于多个日期间隔汇总结果。时间与时间戳一起映射为浮点数据类型。 例: Jobs, Yesterday, Last Week, Last Quarters Jo
我有一个名为 sales 的表,如下所示: s.no item_sold date 1 soap 25.07.2017 2
我想做的是让 NSDate 今天、昨天、本周、上周、本月、上个月变量准备好进行比较,以便在 UITableView 的 titleForHeaderInSection 上添加标题 我想要的是在下面的代
所以,我想做的是实现一个数据范围选择,它不显示两个日期选择器“从”和“到”。我想让用户在今天、昨天、上周、上个月等之间进行选择。 我在服务器端的应用程序中有类似的东西,但是: 1- 代码看起来很糟糕;
我是一名优秀的程序员,十分优秀!