0

我正在使用 jdbc 将数据从远程 sqlserver 拉到本地 mysql 服务器。

在远程 sqlserver 服务器中,我有 2 列

Name  Count 

在本地 mysql 中,我制作了 3 列

Name  Count  Time_stamp

time_stamp 作为日期时间数据类型

我正在使用下面的插入代码段提取数据,

while (rs.next()) {
                    String zoneName = rs.getString("Name");
                   int zonecount = rs.getInt("Count");



                    String insertSql = "insert into occupancy.occupancy_phase_2(Name,Count)values('"+zoneName+"',"+zonecount+")";                 
                   pstmt = con2.prepareStatement(insertSql);
                    pstmt.executeUpdate();

我想在每次运行时为插入查询添加时间戳。

我怎样才能做到这一点。

4

2 回答 2

1

另一种选择是在mysql表中使用“timestamp”类型,它将由mysql自动填写。

例如,

create table if not exists blammo
(
  Name varchar(250),
  Count int,
  last_updated timestamp
);

然后只需将值插入名称和计数。

例如,

insert into blammo
(Name, Count) values ('kapowzie', 17);

每次行更改时,时间戳字段都会更新,除非您将其设置为当前值。有一种方法可以定义列以禁用自动更新,但我不记得它的语法。

有关详细信息,请查看MySql 参考

于 2013-07-11T14:36:08.473 回答
0

您可以使用mysql 的NOW()函数来获取当前日期并插入它(这里我假设数据库服务器与应用程序服务器位于同一时区)

您可以使用以下查询字符串

String insertSql = 
"insert into occupancy.occupancy_phase_2(Name,Count,Time_stamp)values('"+zoneName+"',"+zonecount+", Now())";

您也可以直接给出值而不是指定列

String insertSql = 
    "insert into occupancy.occupancy_phase_2 values('"+zoneName+"',"+zonecount+", Now())";

笔记:

使用准备好的语句时,使用PreparedStatement实例设置查询参数,如下所示

String insertSql = 
        "insert into occupancy.occupancy_phase_2 values(?,?, Now())";
PreparedStatement ps = connection.prepareStatement(insertSql);
ps.setString(1, zoneName);
ps.setInt(2, zonecount);
于 2013-07-11T14:23:52.263 回答