oracle 一问
时间:2014-02-21
来源:互联网
本人想做一个记录列车出发,到达时间的表,当中有没有办法产走年月日??
由於好像一定要记录年月日,我就用timestamp去记录,输入时的格式为(hh24:mi)
eg to_timestamp('22:30', 'hh:mi')他就会自动帮我default年月日,秒就全是0.
:15:00.000000相比date format,因为这个直接相减就可以得到乘车时间等等,比date方便。
因为尾班车的时间是在凌晨,但oracle并不可能表示24·时,25时,所以想到就自己自定年月日。
如果要得出直至凌晨的乘车时间,就把天数变成第二天,直接相减就可‘得出。 但这样做的话会不会有问题?
请问其他前辈会怎样做这个只想记录小时,分钟的处理?
又或是把时间用varchar记录,运算就拿回java做比较好?
希望各位帮帮忙
由於好像一定要记录年月日,我就用timestamp去记录,输入时的格式为(hh24:mi)
eg to_timestamp('22:30', 'hh:mi')他就会自动帮我default年月日,秒就全是0.
:15:00.000000相比date format,因为这个直接相减就可以得到乘车时间等等,比date方便。
因为尾班车的时间是在凌晨,但oracle并不可能表示24·时,25时,所以想到就自己自定年月日。
如果要得出直至凌晨的乘车时间,就把天数变成第二天,直接相减就可‘得出。 但这样做的话会不会有问题?
请问其他前辈会怎样做这个只想记录小时,分钟的处理?
又或是把时间用varchar记录,运算就拿回java做比较好?
希望各位帮帮忙
作者: sense2000 发布时间: 2014-02-21
你用咩方法连接oracle???
作者: sinson123 发布时间: 2014-02-21
引用:package fw;
import java.sql.*;
public class DAO {
public void process(){
try{
Connection con = DBManager.getCon();
String sql = "begin ? := fu2(?); end;";
System.out.println("process");
CallableStatement cs = con.prepareCall(sql);
cs.registerOutParameter(1,Types.VARCHAR);
cs.setInt(2,42);
cs.executeUpdate();
String data = cs.getString(1);
System.out.println(data);
cs.close();
con.close();
}catch(Exception e){}
}
}
package fw;
import java.sql.DriverManager;
import java.sql.Connection;
public class DBManager {
public static Connection getCon(){
try{
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//localhost", "system", "oracle");
return con;
}catch(Exception e){
throw new IllegalStateException(e);
}
}
}
大致打算用stored procedure 及 stored function 去取得资料。import java.sql.*;
public class DAO {
public void process(){
try{
Connection con = DBManager.getCon();
String sql = "begin ? := fu2(?); end;";
System.out.println("process");
CallableStatement cs = con.prepareCall(sql);
cs.registerOutParameter(1,Types.VARCHAR);
cs.setInt(2,42);
cs.executeUpdate();
String data = cs.getString(1);
System.out.println(data);
cs.close();
con.close();
}catch(Exception e){}
}
}
package fw;
import java.sql.DriverManager;
import java.sql.Connection;
public class DBManager {
public static Connection getCon(){
try{
Class.forName("oracle.jdbc.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:@//localhost", "system", "oracle");
return con;
}catch(Exception e){
throw new IllegalStateException(e);
}
}
}
另外,现在在想的问题是转车问题。基本上我用的路线主要是一条线,但一条线当中同时有每一个站停车的列车,及特急(飞站)。
如果只是查询普通列车应该问题不大,但特急不是每一个站停,如果要去一个站是特急不停的,就要转。例如 一条线有以下的车站A 》 B 》 C》 D》 E》F》G普通的就站站停,但特急就A 》D 》G如果在A,正好普通跟特急的时间差不多,要去E,就应该是 A》 D》(转普通) 》E。由於特急并没有记载E的到达时间,就可能找不到有关的乘车路径。我打算在开始得到的资料是’出发地 目的地 出发时间 or 到达时间 or 尾班车打算输出的资料出发地 目的地开车时间 到站时间行车距离所用时间坐车时间等待时间转车次数转车方法详细的行走路径我打算在oracle做的table(主要)是列车编号 A出发时间 B到达时间 B出发时间 C到达时间 。。。。。G到达时间如果这样的table的话,暂时我想不到(现在在推理中)克服特急没有时间记录而找不到路径的问题。另外,假如普通车A》C C是终点站,要坐刚好的D出发的车才可以到E。如果中间断开可能差找不到。其实以上只是自己学习oracle及java而特意想出来的问题。透过尝试,加强认识,不要认真。如果可以有前辈给一些hints就非常感谢了。
[ 本帖最后由 sense2000 於 2014-2-11 01:22 AM 编辑 ]
作者: sense2000 发布时间: 2014-02-21
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28