【问题标题】:How to insert sql date as 04/05/2017 am trying with this如何插入 sql 日期为 04/05/2017 我正在尝试这个
【发布时间】:2017-05-04 07:01:28
【问题描述】:
java.util.Date date = new SimpleDateFormat("dd-MM-yyyy").parse(request.getParameter("dob"));
System.out.println(date);  
java.sql.Date sqlDate = new java.sql.Date(date.getTime());
PreparedStatement ps=cn.prepareStatement("insert into lol values(?,?)");
ps.setString(1, name);
ps.setDate(2, sqlDate);

但输出是 05-MAY-17 这个,我想将 04-05-2017 存储在 oracle db 中。谁能帮帮我

【问题讨论】:

  • 日期就是日期,您正在谈论将日期格式化为字符串表示形式。您按原样存储日期,它没有特定的格式。
  • 不要混淆某物的显示方式和存储方式。从数据库中检索日期后,您可以通过对其进行格式化来轻松更改日期的显示方式。
  • 谢谢@Burhan Khalid 的回复,我会在检索后检查如何转换它。
  • @bharathvarma 你为什么使用date.getTime()?你为什么不试试ps.setDate(date)
  • @user75ponic,因为preparedStatement.setDate() 不接受java.util.Date 参数,它需要java.sql.Date。转换通过getTime() 进行。

标签: java oracle date


【解决方案1】:

在 db 中创建 varchar 列。将其存储为 String 。

当您想在应用程序级别进行一些操作时,将字符串转换为日期。 为此,您可以使用 SimpleDateFormat

【讨论】:

  • @Vikrant - 糟糕的建议。为什么要将日期存储为字符串?只是为了展示目的? Bharath - 将其存储为日期并在显示时更改格式。
  • 这是一个选项,但通常不是您想要的。在需要显示时更好地存储为正确的类型(日期)和格式。
  • @Utsav 。我觉得最好的方法是以毫秒为单位存储,检索值并转换为您想要的任何数据格式。所以你在那个外壳中有一个松散的耦合。考虑到不同地区的内化数据格式的变化。不建议以任何格式存储日期,除非您确定每次都使用相同的格式
  • @Vikrant 恕我直言,存储日期数据类型以外的日期值并不是数据库表的良好设计。
  • @vikrant 你能看看这个,如何在点击 html 按钮时运行 java .exe 文件,我搜索了很多但没有得到答案。
猜你喜欢
  • 1970-01-01
  • 2017-07-25
  • 1970-01-01
  • 2017-11-05
  • 2018-01-12
  • 1970-01-01
  • 2016-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多