gpt4 book ai didi

sql - 如何限制/限制日期时间的浮点值

转载 作者:行者123 更新时间:2023-11-29 11:51:58 24 4
gpt4 key购买 nike

对于最小情况

如果 min(ticktime)::TIMESTAMP2014-01-02 01:14:45.5 ,我想将它转换为 2014-01 -02 01:14:45

对于最大情况

如果 max(ticktime)::TIMESTAMP2014-01-02 01:14:45.5 ,我想将它转换为 2014-01 -02 01:14:46

    SELECT DISTINCT ON (1) generate_series ( min(ticktime)::TIMESTAMP, max(ticktime)::TIMESTAMP, '1 second'::interval) AS ticktime
FROM cffexes

最佳答案

您可以像这样将结果转换为无秒的时间戳:

SELECT DISTINCT ON (1) generate_series ( 
min(ticktime)::TIMESTAMP(0),
max(ticktime)::TIMESTAMP(0)+1,
'1 second'::interval) AS ticktime
FROM cffexes;

如果您想要秒数以外的下限/上限时间,请使用 date_trunc()

当然,如果 max(ticktime) 恰好是偶数秒,这会留下一个非常小的漏洞,您将生成太多。所以你可以试试这个,但要意识到浮点值对相等是出了名的不友好。

SELECT DISTINCT ON (1) generate_series ( 
min(ticktime)::TIMESTAMP(0),
max(ticktime)::TIMESTAMP(0) + (max(ticktime)::TIMESTAMP(0)=max(ticktime)::TIMESTAMP)::int,
'1 second'::interval) AS ticktime
FROM cffexes;

关于sql - 如何限制/限制日期时间的浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27643958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com