如何使用 java 设置完整的日期和时间 sql,而不仅仅是日期?
Posted
技术标签:
【中文标题】如何使用 java 设置完整的日期和时间 sql,而不仅仅是日期?【英文标题】:How do I set a full date & time sql using java, and not just the date? 【发布时间】:2011-04-10 07:23:18 【问题描述】:我正在尝试使用 java 在我的数据库中设置时间戳,但是在我的表中,我得到的只是日期,没有时间(即,看起来像“2010-09-09 00:00:00”)。
我在我的 mysql 数据库上使用了一个日期时间字段(因为它是 appears 那个 datetime is more common than timestamp)。我设置日期的代码如下所示:
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
java.util.Date today = new java.util.Date();
java.sql.Date timestamp = new java.sql.Date(today.getTime());
ps.setDate(1, timestamp);
ps.executeUpdate();
如何设置日期以包含时间?
编辑:我按如下更改了代码,它设置了日期和时间。
PreparedStatement ps = conn.prepareStatement("INSERT INTO mytable (datetime_field) VALUES (?)")
java.util.Date today = new java.util.Date();
java.sql.Timestamp timestamp = new java.sql.Timestamp(today.getTime());
ps.setTimestamp(1, timestamp);
ps.executeUpdate();
【问题讨论】:
【参考方案1】:你可以使用:
private static String getTimeStamp()
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
return f.format(new Date());
【讨论】:
在将日期/时间保存到数据库或从数据库中读取它们时,不应处理它们的字符串格式。诸如setTimestamp
和 getTimestamp
之类的 JDBC 抽象是为了避免这种情况。【参考方案2】:
不完全确定您需要使用什么,但是
ps.setDate();
需要日期类型的列。所以它正在对其进行规范化,移除时间。
试试
ps.setTimetamp();
【讨论】:
【参考方案3】:使用java.sql.Timestamp
和setTimestamp(int, Timestamp)
。 java.sql.Date
是仅限日期的,无论它存储在哪个列中。
【讨论】:
以上是关于如何使用 java 设置完整的日期和时间 sql,而不仅仅是日期?的主要内容,如果未能解决你的问题,请参考以下文章
请问修改表中的某一个日期类型的字段为当前系统时间的sql语句该如何书写。
如何使用 SQL Server 中的日期时间数据设置日期时间本地输入值?
如何使用 PowerQuery 中的高级编辑器设置动态开始日期和结束日期