如何使用SQL将当前日期和时间插入数据库?

12

我使用了下面的代码,但是 SQL 中的 DateTime 字段显示为:

2005-04-08 00:00:00

我也想获取时间,我应该改变什么?

以下是我的代码:

// Get the system date and time.
java.util.Date utilDate = new Date();
// Convert it to java.sql.Date
java.sql.Date date = new java.sql.Date(utilDate.getTime());
...
...
...
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setDate(1, date);

1
在Microsoft SQL-Server上,将当前日期插入数据表的最简单方法是将默认值添加到DateTime(或SmallDateTime)字段中:getdate()。 - Tuomas Hietanen
8个回答

12

尝试使用setTimestamp代替setDate,因为时间戳是首选的日期和时间格式。


3
java.sql.Date仅支持日期,不支持时间。根据Java文档的说明,“为了符合SQL DATE的定义,java.sql.Date实例封装的毫秒值必须通过在实例关联的特定时区内将小时、分钟、秒和毫秒设置为零来进行'规范化'。” - Harry Lime

6

你可以设置时间戳,导入java.sql.Timestamp;

stmt.setTimestamp(1, new Timestamp(System.currentTimeMillis()));

替代

stmt.setDate(1, date);

输出将是:2014-05-16 08:34:52.977

将您的数据库列设置为时间戳。


3
我建议不要在Java中获取当前时间,直接让数据库来处理:
String sql = "insert into some_table (some_column, timestamp_column) values (?, current_timestamp)";
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setInt(1, 42);
stmt.executeUpdate();

2

试试这个:

Connection con;
Statement stmt;
con = DriverManager.getConnection(url, username, password);
stmt = con.createStatement();
stmt.executeUpdate("INSERT INTO MYTABLE(time) " +
"VALUES ('" + new java.sql.Date(System.CurrentTimeMillis())"');");

1
使用 SQL 函数 now()。
INSERT INTO table date_field VALUES(NOW());

0
我按照以下步骤进行了操作:
con = new BDConesion(); //Conexion with de DB
Connection cn = con.conexion()
PreparedStatement st = null;
st = cn.prepareStatement("INSERT INTO TABLE (Id,Fecha,contendido) VALUES(?,?,?)");
st.setString(1,String.valueOf(key)); //convert the int to string
st.setTimestamp(2, new Timestamp(System.currentTimeMillis()));
st.setString(3,Cont);//Cont it is a varible string
st.executeUpdate();

希望你能服务


0
尝试使用setDate (utilDate)而不是尝试设置SQL日期。 在SQL中,日期和时间是不同的数据类型。

-2
实际上,在数据库中的日期是一个类似于“yyyy-mm-dd”的字符串。
为什么不尝试:
String date = "2010-07-28";
stmt.executeUpdate("INSERT INTO MYTABLE(time) " + s);
这只是针对您想要的日期。
如果您想要插入当前日期,请使用以下命令:
INSERT INTO mytable(now());

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接