- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要将 userCurrentDate
与选项列表进行比较。
选项是数据库中包含时间属性的表(定义:TIMESTAMP(6) WITH TIME ZONE. 在 oracle 中)。每个选项都有他的时区。
userCurrentDate
(Java 中的定义 Date)是一个参数,用于保存用户时间和日期的偏移量。用户可以来自世界各地,因此每个用户都处于不同的时区。
我需要比较用户当前的日期和选项日期。所以我需要在同一时区获取这两个参数。
如何在 SQL 中获取同一时区的这 2 个参数?
我试着让他们在格林威治标准时间,所以我可以让他们在同一个基地,像这样:
trunc(SYS_EXTRACT_UTC(o.time)) = trunc(sysdate)
但这不是一个好的解决方案。
所以,我需要让它们处于同一时区。我怎样才能在 SQL 命令(或其他解决方案)中获得它?
最佳答案
为什么您认为您需要这种转换?您有什么版本的 Oracle 和 Oracle JDBC?
您是否尝试过绑定(bind)您的 userCurrentDate
并执行 SQL,如下所示:
connection.prepareStatement("select * from options o where o.time = ?")
.setTimestamp(1, new Timestamp(userCurrentDate.getTime())
.executeQuery();
我已经用 ojdbc14.jar
和 Oracle 10g 对此进行了测试,它工作正常。
由于 Date
和 Timestamp
数据类型中没有任何时区信息,您实际上不必关心时区与 DB 值的匹配,只要:
TIMESTAMP WITH TIME ZONE
类型的列中插入一些值时,JDBC 驱动程序使用您本地的时区。Date
/Timestamp
类型里面没有这些信息。只要您只需要将您的 Java Date
对象与 DB 值相匹配,您应该没问题,无需任何转换。
另外,请查看这篇关于该主题的综合文章:[How To] Handle Oracle TimeStamp with TimeZone from Java
关于java - 比较同一时区的java Date与sql TIMESTAMP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10070497/
标题基本上说明了一切。 我主要对更新案例感兴趣。假设我们正在尝试更新具有时间戳记字段的记录,并且我们希望将该字段设置为记录更新的时间戳记。有没有办法做到这一点? 最佳答案 经过一些实验,我找到了合适的
我正在学习一门类(class),其中我必须将日期转换为 unix 时间戳。 import pandas as pd df = pd.read_csv('file.csv') print type(df
我在两个不同的数据库中运行了相同的语句:我的本地数据库和 Oracle Live SQL . CREATE TABLE test( timestamp TIMESTAMP DEFAULT SY
我在两个不同的数据库中运行了相同的语句:我的本地数据库和 Oracle Live SQL . CREATE TABLE test( timestamp TIMESTAMP DEFAULT SY
bson.timestamp.Timestamp需要两个参数:time 和 inc。 time 显然是存储在 Timestamp 中的时间值。 什么是公司?它被描述为递增计数器,但它有什么用途呢?它应
2016-08-18 04:52:14 是我从数据库中获取的时间戳,用于跟踪我想从哪里加载更多记录,这些记录小于该时间 这是代码 foreach($explode as $stat){
我想将 erlang:timestamp() 的结果转换为正常的日期类型,公历类型。 普通日期类型表示“日-月-年,时:分:秒”。 ExampleTime = erlang:timeStamp(),
我想将 erlang:timestamp() 的结果转换为正常的日期类型,公历类型。 普通日期类型表示“日-月-年,时:分:秒”。 ExampleTime = erlang:timeStamp(),
我是 Java 新手。我正在使用两个 Timestamp 对象 dateFrom和dateTo 。我想检查是否dateFrom比 dateTo早 45 天。我用这个代码片段来比较这个 if(dateF
在将 panda 对象转换为时间戳时,我遇到了这个奇怪的问题。 Train['date'] 值类似于 01/05/2014,我正在尝试将其转换为 linuxtimestamp。 我的代码: Train
我正在努力让我的代码运行。时间戳似乎有问题。您对我如何更改代码有什么建议吗?我看到之前有人问过这个问题,但没能成功。 这是我在运行代码时遇到的错误:'Timestamp' object has no
我正在尝试运行以下查询: SELECT startDate FROM tests WHERE startDate BETWEEN TIMESTAMP '1555248497'
我正在使用 Athena 查询以 bigInt 格式存储的日期。我想将其转换为友好的时间戳。 我试过了: from_unixtime(timestamp DIV 1000) AS readab
最近进行了一些数据库更改,并且 hibernate 映射出现了一些困惑。 hibernate 映射: ...other fields 成员模型对象: public class Mem
rng = pd.date_range('2016-02-07', periods=7, freq='D') print(rng[0].day) print(rng[0].month) 7 2 我想要
rng = pd.date_range('2016-02-07', periods=7, freq='D') print(rng[0].day) print(rng[0].month) 7 2 我想要
我必须在我的数据库中保存 ServerValue.TIMESTAMP 但它必须是一个字符串。当我键入 String.valueOf(ServerValue.TIMESTAMP); 或 ServerVa
在我的程序中,每个表都有一列 last_modified: last_modified int8 DEFAULT (date_part('epoch'::text, now()::timestamp)
我想将此时间戳对象转换为日期时间此对象是在数据帧上使用 asfreq 后获得的这是最后一个索引 Timestamp('2018-12-01 00:00:00', freq='MS') 想要的输出 2
我有一个包含时间序列传感器数据的大表。大型是指分布在被监控的各个 channel 中的从几千到 10M 的记录。对于某种传感器类型,我需要计算当前读数和上一个读数之间的时间间隔,即找到当前读数之前的最
我是一名优秀的程序员,十分优秀!