gpt4 book ai didi

java - 确定给定的时间戳是否在 postgresql 中的同一天

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:11:44 24 4
gpt4 key购买 nike

我有一个带有“没有时区的时间戳”字段的 PostgreSQL 表。在某个给定的时间点,我查询了这个表,我需要那些时间戳与执行查询时在同一天的记录。这是代码:

 DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy/MM/dd HH:00:00");
DateTime dt = new DateTime();
String timeStampAsString = dt.toString(formatter);
String select = "SELECT * FROM " + tableName + " WHERE " + tableName + ".timestamp >= '"+ timeStampAsString + "'";
pst = dbConnection.prepareStatement(select);
pst.execute();

如您所见,我在这里使用的是 Joda,我还在其他地方填充了该表,所以我现在的格式是正确的 (yyyy/MM/dd HH:00:00)。不太确定我是否可以将 long 直接传递给查询而不是转换为 String,但这现在不会打扰我。

因为查询条件是 >= than "NOW"时间戳,这不太可能返回一些东西。我需要的是在“NOW”时间戳的同一天获取记录。我想我必须询问上限和下限,但我不确定如何计算此查询的下限...有什么想法吗?

谢谢!

最佳答案

我想你需要这个查询

select *
from test1
where ts >= current_date and ts < current_date + interval '1 day';

select *
from test1
where ts >= now()::date and ts < now()::date + interval '1 day';

还可以做

select *
from test1
where ts::date = now()::date;

但我认为它会因为列中数据的转换而表现更差。

sql fiddle demo

关于java - 确定给定的时间戳是否在 postgresql 中的同一天,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18269966/

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