2017-03-17 427 views
2

我是SpringBoot中的新成员,并使用嵌入式数据库H2创建应用程序。H2时间戳 - 始终插入(或获取)当前日期

CREATE TABLE IF NOT EXISTS t_occurrence (
    id  bigint PRIMARY KEY, 
    where varchar(100), 
    when timestamp null 
); 

我使用这个类来插入值,但无论我插入我总是得到当前的日期,当我做occurrence.getWhen()

int numOfRowsAffected = jdbcTemplate.update(
    "insert into t_occurrence (ID, where, when) " 
    + " values (?,?,?);", 
    id, 
    occurrence.getWhere(), 
    occurrence.getWhen() 
); 

if (numOfRowsAffected==1) return id; 
else return -1; 

即使硬编码的时间

int numOfRowsAffected = jdbcTemplate.update(
     "insert into t_occurrence (ID, where, when) " 
     + " values (?,?,''2012-09-17 18:47:52.69');", 
     id, 
     occurrence.getWhere(), 
     occurrence.getWhen() 
    ); 

    if (numOfRowsAffected==1) return id; 
    else return -1; 



public class Occurrence { 



private Long id; 


private Date when; 


private String where; 



public Long getId() { 

    return id; 

} 



public void setId(Long id) { 

    this.id = id; 

} 


public Date getWhen() { 

    return when; 

} 



public void setWhen(Date when) { 

this.when = when; 

} 



public String getWhere() { 

return where; 

} 



public void setWhere(String where) { 

this.where = where; 

} 

} 
+0

getWhen()如何在发生类中定义? –

回答

0

您应该使用不使用“时间戳”时的“日期”类型和“时间”类型

T “timestamp”的类型是服务器自动通用的

+0

但日期时间未出现在H2类型: INT型 布尔类型 TINYINT类型 SMALLINT类型 BIGINT类型 标识类型 小数类型 DOUBLE类型 REAL类型 时类型 日期类型 TIMESTAMP类型WITH TIME TIMESTAMP区域类型 二进制类型 其他类型的 VARCHAR类型 VARCHAR_IGNORECASE类型 CHAR类型 BLOB类型 CLOB类型 UUID类型 ARRAY类型 GEOMETRY类型 – Stasky

+0

有H2类型的日期类型和时间类型 –

+0

时间类型如“hh:mm:ss”,DATE类型如“yyyy-MM-dd” –