为什么mysql-connector将YEAR(4)设为Date?

时间:2018-12-03 19:16:58

标签: java mysql jdbc mysql-connector

https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html

  

yearIsDateType

     

JDBC驱动程序应将MySQL类型“ YEAR”视为java.sql.Date,   或作为简短内容?

     

默认值:true

问题:如果YEAR(4)Integer中的mysql(默认情况下),为什么mysql-connector java驱动程序将年份值设为{{ 1}}?

我的意思是,这种默认配置有任何理由吗?

因为:如果您不仔细查看数据库,则可以假设例如Date的值直接来自数据库。但是,数据库仅将2017-01-01作为年份值,而Java则默默地添加月份的第一天。

1 个答案:

答案 0 :(得分:1)

文档内容如下:

YEAR[(2|4)]

YEAR

如果yearIsDateType配置属性设置为false,则 返回的对象类型为java.sql.Short。如果设置为true(默认设置), 那么返回的对象的类型为java.sql.Date,日期设置为 1月1日午夜。

来源:https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-type-conversions.html