Postgresql 是否有时间戳的max函数(带或不带时区)?
当我在两个时间戳上调用Postgresql 是否有时间戳的max函数(带或不带时区)?,postgresql,Postgresql,当我在两个时间戳上调用max时,我得到一个错误: 选择max(现在()::timestamp,to_timestamp('2021-01-01','YYYY-MM-DD')::timestamp); --错误:函数max(没有时区的时间戳,没有时区的时间戳)不存在 我的实际使用情况是在upsert查询中,我想写下: INSERT ... ON CONFLICT (pk) DO UPDATE SET ts = max(table.ts, excluded.ts) 问题 在PostgreSQ
max
时,我得到一个错误:
选择max(现在()::timestamp,to_timestamp('2021-01-01','YYYY-MM-DD')::timestamp);
--错误:函数max(没有时区的时间戳,没有时区的时间戳)不存在
我的实际使用情况是在upsert查询中,我想写下:
INSERT ...
ON CONFLICT (pk) DO UPDATE SET
ts = max(table.ts, excluded.ts)
问题
在PostgreSQL中是否有一种惯用的方法来获取两个时间戳之间的最大值?我想您正在寻找
grest()
函数
max()
()是一个聚合函数,返回一组记录的最大值。magest()
()在任意数量的参数中取最大值-在您的情况下为两个。它也可用于类型时间戳
额外注意:在任意数量的参数中取最小值的函数名为
least()
(而不是“minimate”)我想您正在寻找grest()
函数
max()
()是一个聚合函数,返回一组记录的最大值。magest()
()在任意数量的参数中取最大值-在您的情况下为两个。它也可用于类型时间戳
额外注意:从任意数量的参数中取最小值的函数名为
least()
(不是“最小”)使用maxist
:
选择最大值(现在()::时间戳,到时间戳('2021-01-01','YYYY-MM-DD')::时间戳);
最大
标量函数接受一个或多个参数并返回这些输入的最大值。使用最大
:
选择最大值(现在()::时间戳,到时间戳('2021-01-01','YYYY-MM-DD')::时间戳);
最大
标量函数接受一个或多个参数,并返回这些输入的最大值。接受两个参数中的最大值
。。。不,它可以取一个参数,或者2个以上。你是对的,我应该更准确:)取两个参数中的最大值。。。不,它可以包含一个参数,也可以包含多个参数。您是对的,我应该更准确地说:)