Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Postgres中的间隔中使用可变期间

在Postgres中的间隔中使用可变期间
EN

Stack Overflow用户
提问于 2011-10-17 16:24:44
回答 4查看 41.7K关注 0票数 70

我有一个维护每月历史数据的关系。此数据将在每个月的最后一天添加到表中。然后,可以调用我正在编写的服务,指定要检索历史数据的月份和月份数。为此,我创建了startDate和endDate变量,然后返回这两个变量之间的数据。我遇到的问题是,startDate是endDate之前的可变月数,我不知道如何在间隔中使用可变期间。

这就是我所拥有的:

代码语言:javascript
运行
AI代码解释
复制
    DECLARE
      endDate   TIMESTAMP := (DATE_TRUNC('MONTH',$2) + INTERVAL '1 MONTH') - INTERVAL '1 DAY';
      startDate TIMESTAMP := endDate - INTERVAL $3 'MONTH';

我知道startDate的线路不正确。如何正确地完成这项工作?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-10-17 18:34:42

使用这一行:

代码语言:javascript
运行
AI代码解释
复制
startDate TIMESTAMP := endDate - ($3 || ' MONTH')::INTERVAL;

注意MONTH前面的空格。基本上:使用like 4 MONTH构造一个字符串,并使用::type将其转换为适当的间隔。

编辑:我找到了另一个解决方案:你可以像这样用interval计算:

代码语言:javascript
运行
AI代码解释
复制
startDate TIMESTAMP := endDate - $3 * INTERVAL '1 MONTH';

这对我来说看起来更好一点。

票数 123
EN

Stack Overflow用户

发布于 2011-10-17 18:35:07

这段代码与您的情况没有直接关系,但它确实说明了如何在区间算术中使用变量。我的表名是“日历”。

代码语言:javascript
运行
AI代码解释
复制
CREATE OR REPLACE FUNCTION test_param(num_months integer)
  RETURNS SETOF calendar AS
$BODY$

    select * from calendar
    where cal_date <= '2008-12-31 00:00:00'
    and cal_date > date '2008-12-31' - ($1 || ' month')::interval;

$BODY$
  LANGUAGE sql VOLATILE
  COST 100
  ROWS 1000;
票数 9
EN

Stack Overflow用户

发布于 2021-02-25 17:45:01

我找到的传递可变时间段给Postgres的最易读的方法类似于A.H.的答案:乘以一个整数,但这可以在没有强制转换的情况下完成。

Python示例(使用sqlalchemy和pandas):

代码语言:javascript
运行
AI代码解释
复制
import pandas as pd
import sqlalchemy as sa

connection = sa.create_engine(connection_string)

df = pd.read_sql(
   sa.text('''
       select * from events
       where
       event_date between now() - (interval '1 day' * :ndays) and now()
       limit 100;
'''),
   connection,
   params={'ndays': 100}
)

天数(Nday)是从Python内部作为整数传递的-因此不太可能出现意外的结果。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7796657

复制
相关文章
挑战EXCEL!!!
感情这种东西,已经不可依赖,如今世道变成这个样子。越是有才能的人,感情就越脆弱。
用户5410712
2022/06/01
2630
挑战EXCEL!!!
棋盘挑战
Original Link 思想: DFS。 注意棋盘的每一行,每一列及其有棋子存在的对角线的平行线上有且只有一个棋子。 递归处理,每一次递视为一次对是否放置棋子的判断,递归的层数视为棋盘的层数,每一层只能放置一个棋子。 对于递归的每一层,遍历这层棋盘的格子,判断以该格子的列和对角线的平行线上是否存在过棋子: 没有棋子则直接放置,标记并递归进入下一层,以此种方法可以得到最小字典序的方案。 放置棋子后,则需要对放置的格子所在的列和对角线的平行线进行标记。 递归处理上述过程,直到将所有的棋子放置完毕,记录 r
浪漫主义狗
2023/03/08
4510
挑战赛 | 京东AI时尚挑战赛
随着中国时尚消费市场的扩大和AI技术在中国消费领域的普及,AI+Fashion正在对时尚行业产生重大影响。在AI技术促进和改善时尚相关购物体验的技术不断涌现的同时,相关技术仍然面临重重挑战。
朱晓霞
2018/07/23
6270
并发挑战(三)
并发挑战(三)
Java架构师必看
2021/05/14
2060
挑战24点
开发这个是因为,龙卡信用卡每天签到,有时候会出现挑战 24 点的任务,感觉挺有意思的,就想着自己做成一个 APP ,上下班路上可以自己耍。
莫空9081
2022/03/14
4310
【类型挑战】If,难度⭐️
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 知识运用: 要求限制输入为指定类型时需要考虑到使用泛型进行约束; 当需要进行类型选择判断的使用考虑使用条件类型; 题目分析: 题目地址:268-easy-if 如上图所示我们需要实现一个通用的类型工具,来实现if条件判断,当传入的第一个参数的结果为真则返回第二个参数的类型,反之返回第三个参数的类型 题目解答: 测试用例: 当输入第一个参数为真,则返回第二个参数类型‘a’; 当输入第
前端小鑫同学
2022/12/26
3670
【类型挑战】If,难度⭐️
并发挑战(二)
并发挑战(二)
Java架构师必看
2021/05/14
1730
并发挑战(一)
并发挑战(一)
Java架构师必看
2021/05/14
2880
并发挑战(一)
楼+挑战心得
注释段是最初的解决方法(然而并没有什么用),后来经过查询list列表的方法,猛然醒悟,我可以用索引呀!所以,很多我们学到的知识自己认为学会了,但是事实我们只是记住了有这个东西,更糟糕的是,当我们需要用到相关知识解决问题的时候,我们却不能很好的想起她,所以编程之道在于实践,在不断地实践中积累经验,下次遇到这样的问题就会相对顺利了。
py3study
2020/01/19
4390
EDI的五个常见挑战以及如何克服这些挑战
EDI是成功进行供应链管理的一个关键要素。它使企业能够以标准化的电子格式处理与任何交易伙伴的业务数据交换,极大简化了许多曾经繁琐的程序。然而,如果企业正在扩张或处于高速增长阶段,如何充分利用EDI仍然是非常有挑战性的。
知行软件EDI
2020/11/27
8580
狼叔:聊聊 Node.js
前阵子我在知乎上回答了《2021前端会有什么新的变化?》,单篇33.8万的阅读量,还是不错的,说明大家非常关心前端的变化趋势,这里再与大家分享一下我对 Node.js 相关内容的看法。
五月君
2021/07/15
1.3K0
Socket 面对的挑战?
在软件中最普遍和生命力最强的接口之一就是是Socket API。Socket API最早是由由加州大学伯克利分校计算机系统研究小组开发的,在1982年作为 BSD 4.1c操作系统的一部分首次发布。虽然有一些使用时间更长的 API ,例如那些处理 Unix 文件 I/O 的 API ,但是一个 API 能够保持使用并且近40年来基本上没有变化,这是及其令人印象深刻的事情了。对Socket API 的主要更新是扩展了辅助程序,以适应 IPv6的大地址空间。
半吊子全栈工匠
2021/10/14
3680
【类型挑战】Awaited,难度⭐️
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 知识运用: 在条件类型中进行类型推断 泛型约束 题目分析: 题目地址:189-easy-awaited 我们在使用Promise时往往可以通过泛型来约束最后返回时的对象类型,我们这道题就需要设计一个类型工具来得到Promise返回的这个类型。 题目解答: 测试用例: 约束传入的类型一定是一个Promise对象,当传入非Promise对象时将抛出错误。 当我们传入Promise对象时将返回对应T的类
前端小鑫同学
2022/12/26
4390
【类型挑战】Awaited,难度⭐️
挑战任务: 车道检测
本次挑战内容来自Udacity自动驾驶纳米学位课程,素材中车道保持不变,车道线清晰明确,易于检测,是车道检测的基础版本,网上也有很多针对复杂场景的高级实现,感兴趣的童鞋可以自行了解。
CodecWang
2021/12/07
5220
挑战任务: 车道检测
【类型挑战】Includes,难度⭐️
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 知识运用: 条件类型的使用与学习; 索引访问类型的使用与学习; 数组解构的应用; 递归的应用;题目分析: 题目地址:898-easy-includes 如上图所示我们需要实现一个includes函数,当我们传入的类型在所给数组中存在在返回true,反之返回false,那么我们就在类型编程实现这么一个通用的类型工具吧。题目解答: 测试用例: 本次的测试用例很多,这道看似简单的问题实际上并不简
前端小鑫同学
2022/12/26
4270
【类型挑战】Includes,难度⭐️
挑战蓝龙Kalecgos
上次画的刀因为是装备, 所以有多种颜色的纹理 而多种颜色的纹理都要去查表... 虽说DBC文件很简单, 但现在懒得看 找个单一纹理的弄吧, 纹理名全存在M2文件里的 随便看了看, 觉得这头蓝龙挺帅的,
逍遥剑客
2018/05/23
4440
ROBOMASTER TT挑战卡
,方便用户区别不同挑战卡。星球:TT 通过探测星球排列图案识别挑战卡 ID,并且获取在该挑战卡坐标系中的坐标值。小火箭:代表该
云深无际
2021/04/14
2.4K0
ROBOMASTER TT挑战卡
【类型挑战】Exclude,难度⭐️
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 知识运用: Exclude将从联合类型中排除特点的类型后输出剩余联合类型 条件类型运用 分布式条件类型运用题目分析: 题目地址:43-easy-exclude 如上图所示我们需要设计一个与内置Exclude功能一致的类型工具,从已知的联合类型中排除指定类型后将剩余类型返回。 题目解答: 测试用例: /* _____________ 测试用例 _____________ */ import {
前端小鑫同学
2022/12/26
5920
【类型挑战】Exclude,难度⭐️
【类型挑战】Push,难度⭐️
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 知识运用: 条件类型的灵活运用; 分布式条件类型的灵活运用;题目分析: 题目地址:3057-easy-push 题目解答: 测试用例: /* _____________ 测试用例 _____________ */ import { Equal, Expect, ExpectFalse, NotEqual } from '@type-challenges/utils' type cases =
前端小鑫同学
2022/12/26
6050
【类型挑战】Push,难度⭐️
【类型挑战】Unshift,难度⭐️
Dear,大家好,我是“前端小鑫同学”,😇长期从事前端开发,安卓开发,热衷技术,在编程路上越走越远~ 知识运用: 条件类型的灵活运用; 分布式条件类型的灵活运用; 解构完美解答此题; 题目分析: 题目地址:3060-easy-unshift 这道题的题面应该也不用多数,实现一个类数组unshift的功能,将我们的U传入到T的第一个位置。 题目解答: 测试用例: 测试用例和上一道题几乎是一样的,,只是向数组第一个元素的位置插入新的元素,我们这次的解法是不是可以直接复用呢?一起来看一下。 /* ____
前端小鑫同学
2022/12/26
3260
【类型挑战】Unshift,难度⭐️

相似问题

Loopback4 -如何连接MongoDB

21

loopback4中的Mixin

20

Loopback4 MySQL自动增长ID

11

Loopback4 DefaultTransactionalRepository不工作

10

loopback4 jwt认证中的问题

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档