我将Datagrip用于PostgreSQL。我有一个带有时间戳格式的日期字段的表(ex:2016-11-01 00:00:00)
。我希望能够:
当前开始查询:
select org_id, count(accounts) as count, ((date_at) - 1) as dateat
from sourcetable
where date_at <= now() - 130
group by org_id, dateat
第1行的((date_at)-1)
子句导致:
[42883]错误:运算符不存在:没有时区的时间戳-整数提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。职位:69
now()
子句会产生类似的消息:
[42883]错误:运算符不存在:带有时区的时间戳-整数提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。职位:...
类型转换的在线指南是非常没有帮助的。欢迎输入。
对其使用interval
类型。例如:
--yesterday
SELECT NOW() - INTERVAL '1 DAY';
--Unrelated to the question, but PostgreSQL also supports some shortcuts:
SELECT 'yesterday'::TIMESTAMP, 'tomorrow'::TIMESTAMP, 'allballs'::TIME;
然后可以对查询执行以下操作:
SELECT
org_id,
count(accounts) AS COUNT,
((date_at) - INTERVAL '1 DAY') AS dateat
FROM
sourcetable
WHERE
date_at <= now() - INTERVAL '130 DAYS'
GROUP BY
org_id,
dateat;
可以追加多个操作数。例如:如何获取本月最后一天?
SELECT date_trunc('MONTH', CURRENT_DATE) + INTERVAL '1 MONTH - 1 DAY';
您还可以使用make_interval
函数创建时间间隔,当您需要在运行时创建时间间隔时(不使用文字)很有用:
SELECT make_interval(days => 10 + 2);
SELECT make_interval(days => 1, hours => 2);
SELECT make_interval(0, 1, 0, 5, 0, 0, 0.0);
日期/时间函数和运算符
datatype-datetime(特别是值)。
我正在为Postgresql使用Datagrip。我有一个带有时间戳格式的日期字段的表(例如:2016-11-01 00:00:00)。我希望能够: 应用数学运算符减去1天 当前开始查询: 第1行的子句导致: [42883]错误:运算符不存在:没有时区的时间戳-整数提示:没有与给定名称和参数类型匹配的运算符。您可能需要添加显式类型转换。职位:69 子句产生了类似的消息: [42883]错误:运算符
问题内容: 我有一个这样的日期: 如何返回同一日期但比一年前早的日期? 问题答案: 您可以使用: 该函数返回unix时间戳,可以使用以下格式的字符串:
我只想从中减去1个小时。我试着在Google上查找,发现有一个名为minus的方法,它获取日期的副本并在这里获取特定的持续时间:http://www.joda.org/joda-time/apidocs/org/joda/time/datetime.html#minus(long) 但我不知道如何使用它,我也找不到一个例子在互联网上。 下面是我的代码: 我还尝试将解析为double,这样就可以减去
问题内容: 我得到一个datetime字段,当前在查询中为: 我想做的是从该日期减去3个小时(格林尼治标准时间问题),但是我无法在PHP中执行此操作,因为PHP仅知道日期部分,而不是时间。 问题答案: MySQL具有: 但是尝试解决潜在的时区问题会更好吗?
问题内容: 我有一个datetime列,如下所示- 现在,我想从此列的每一行中减去一年。我怎样才能达到相同的目标?我可以使用哪个库? 预期字段- 谢谢。 问题答案: 您可以用来实现以下目的:
问题内容: 我想从bash日期中减去“天数”。我正在尝试这样的事情.. 问题答案: 您输入的日期不正确。相反,说: 如果需要将其存储在变量中,请使用: