我们正在使用Hibernate将数据从我们的JAVA应用程序插入Teradata数据库。 现在,表中有一个日期列,所以我们只传递新的Data()并尝试保存它。但它给了我们以下错误:
Caused by: com.teradata.jdbc.jdbc_4.util.JDBCException: [Teradata Database] [TeraJDBC 14.00.00.13] [Error 5404] [SQLState HY000] Datetime field overflow.
at com.teradata.jdbc.jdbc_4.util.ErrorFactory.makeDatabaseSQLException(ErrorFactory.java:307)
at com.teradata.jdbc.jdbc_4.statemachine.ReceiveInitSubState.action(ReceiveInitSubState.java:102)
at com.teradata.jdbc.jdbc_4.statemachine.StatementReceiveState.subStateMachine(StatementReceiveState.java:302)
供参考:
我的课程:
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "EDW_CREATE_DTM")
public Date getEdwCreateDtm() {
return edwCreateDtm;
}
在我的服务类中......在插入前设置值:
someObject.setEdwCreateDtm(new Date());
是否有任何特定的方式将日期插入teradata ??
任何关于此的指示都会有所帮助。
答案 0 :(得分:0)
您的目标列是定义为TIMESTAMP还是DATE?
如果将其定义为TIMESTAMP,您是否尝试插入大于TIMESTAMP数据类型精度的时间精度?例如,如果列定义为TIMESTAMP(0)并且您尝试插入“2012-05-15 14:25:46.125”,则可能会收到溢出错误。您的列需要定义为TIMESTAMP(3)。
如果将其定义为DATE,则不支持TIMESTAMP的TIME部分。 Teradata中的DATE数据类型为'yyyy-mm-dd'或类似值。