gpt4 book ai didi

sql - 如果不是今天的日期,则条件查询返回时间戳,否则返回时间

转载 作者:行者123 更新时间:2023-11-29 12:27:41 25 4
gpt4 key购买 nike

我有一个 SQL 查询,我想从表中检索时间戳记录。

但是,如果今天的日期 = 该记录中的时间戳,则查询必须仅返回不带时区的时间。

如果记录的 timestamp::date 不等于今天的日期,则返回时间戳。示例:

2013-08-07 18:00:18.692+01
2013-08-09 20:13:09.927+01

预期结果:

18:00:18.692 
2013-08-09 20:13:09.927+01

从这两个时间戳中,我希望能够从第一个时间戳中检索时间,因为它是今天的日期,但从第二个时间戳中检索日期和时间,因为它不是今天的日期

最佳答案

这本质上是一个格式问题,因此最好在应用程序代码中处理它。但是您可以在 SQL 中完成。

create table t (
ts timestamp not null
);

insert into t values
('2013-01-01 08:00');
insert into t values
(current_timestamp);

时间和时间戳数据类型与您希望返回它们的方式不兼容,因此转换为文本是有意义的。

select case when ts::date = current_date then ts::time::text
else ts::text
end
from t;

TS
--
2013-01-01 08:00:00
16:34:52.339

关于sql - 如果不是今天的日期,则条件查询返回时间戳,否则返回时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105427/

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