Java 从oracle每分钟插入和提取小时数
我在甲骨文公司工作 我想插入包含小时和分钟的数据 我有这样一个专栏:DATE\u ARCH 此列的类型为日期 我有一个java代码,它应该在这个列中插入日期Java 从oracle每分钟插入和提取小时数,java,sql,Java,Sql,我在甲骨文公司工作 我想插入包含小时和分钟的数据 我有这样一个专栏:DATE\u ARCH 此列的类型为日期 我有一个java代码,它应该在这个列中插入日期 transfers.setDateArch(new java.sql.Date( System.currentTimeMillis())); 但是当我试图从日期中提取小时和分钟时 使用以下sql代码: select to_char(transfers.DATE_ARCH , 'HH:MM'
transfers.setDateArch(new java.sql.Date(
System.currentTimeMillis()));
但是当我试图从日期中提取小时和分钟时
使用以下sql代码:
select to_char(transfers.DATE_ARCH , 'HH:MM') from transfers where id_transfer='TR-300'
我一直有这个价值观:
12:05
已更新:
我尝试使用以下代码:
Timestamp t = new Timestamp(new Date().getTime());
transfers.setDateArch(t);
select to_char(transfers.DATE_ARCH , 'HH24:MI') from transfers where id_transfer='TR-258'
我尝试使用以下代码提取小时和分钟:
Timestamp t = new Timestamp(new Date().getTime());
transfers.setDateArch(t);
select to_char(transfers.DATE_ARCH , 'HH24:MI') from transfers where id_transfer='TR-258'
但我在所有情况下都有这个价值:
00:00
正如我已经说过的,DATE\u ARCH的类型是DATE
当我尝试使用sql时:
UPDATE transfers SET DATE_ARCH = SYSDATE
我使用了正确的值
select to_char(transfers.DATE_ARCH , 'HH24:MI') from transfers where id_transfer='TR-258'
现在我想知道如何使用java代码插入带有小时和分钟的日期,您是对的。我对Oracle的java接口了解不够,无法找到正确的解决方案。但是,您的解决方案是在没有时间的情况下插入日期。表达方式:
to_char(transfers.DATE_ARCH , 'HH:MM')
返回“12”是因为是午夜,返回“05”是因为是五月。分钟的正确表达式是:
to_char(transfers.DATE_ARCH , 'HH:MI')
对于24小时制:
to_char(transfers.DATE_ARCH , 'HH24:MI')
唉,我不知道如何修复java代码。但是也许有一种
DateTime
方法可以使用。您想检索什么?您正在将值转换为仅包含小时和分钟的字符,因此您只获取小时和分钟应该不会感到惊讶。我在所有时间12:05中遇到的问题,我认为12:05是默认值,因为我尝试在不同的时间内保存,但在所有情况下都是12:05,如JavaDocs中所述:ajava.sql.Date
没有时间(它被设置为0
)。您需要使用java.sql.Timestamp
。并且MM
返回月份,而不是分钟数(请参阅Oracle手册)。