gpt4 book ai didi

java - 代码中的数据库查询

转载 作者:行者123 更新时间:2023-11-30 05:07:04 25 4
gpt4 key购买 nike

我在代码中使用 sysdate 查询来获取过去 3 小时内最后更新的行(应该是可配置的)。数据库在 GMT 时区运行,应用程序在 PST 时区运行。查询如下所示

select * from <table> where updated_Date  < sysdate - numdtodsinterval(3,'hour')

从与数据库具有不同时区的应用程序触发此类查询的建议/最佳实践是什么。

最佳答案

我不得不说,对于覆盖多个时区的应用程序来说,最佳实践是停止使用 DATE 数据类型并开始使用 TIMESTAMP 和 TIMEZONE 数据类型。

我并不是说这很容易,只是说出于几个原因这可能是最佳实践。

主要是它消除了所有歧义。如果您使用 DATE,则没有人可以知道该值是根据什么计算的。你知道。也许您对该专栏有评论(理想情况),但可能被忽视。如果它是具有 TIMEZONE 数据类型的 TIMESTAMP,则您已经确定了独立于本地时钟的特定时刻。

但这假设您可以更改数据库架构,但您可能无法更改。因此,这可以作为您下一个日期列的警告。

关于java - 代码中的数据库查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4718996/

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