我有一个表,其中日期列存储为 varchar。在进行对象关系映射(我正在使用 eclipselink)时,我想将此字符串/varchar 映射到 java 中的 Date 对象。
我的桌子是:
T_BUSINESS TRAN_ID 号码, BUSINESS_DATE瓦查尔
我想选择业务日期在两个输入日期之间的所有行,这里的问题是因为 BUSINESS_DATE 是 varchar 我无法进行比较。我无法修改表,也不想使用本机 sql。
谁能告诉我我该怎么做。
提前致谢!
我有一个表,其中日期列存储为 varchar。在进行对象关系映射(我正在使用 eclipselink)时,我想将此字符串/varchar 映射到 java 中的 Date 对象。
我的桌子是:
T_BUSINESS TRAN_ID 号码, BUSINESS_DATE瓦查尔
我想选择业务日期在两个输入日期之间的所有行,这里的问题是因为 BUSINESS_DATE 是 varchar 我无法进行比较。我无法修改表,也不想使用本机 sql。
谁能告诉我我该怎么做。
提前致谢!
您可以使用 TypeConverter 来映射它,
看,
http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/a_typeconverter.htm#CHDHCCJF
在查询中进行比较可能会更困难,我认为默认日期格式是 yyyy-mm-dd 因此 varchar 比较可能有效。否则,您确实需要数据库上的真实 DATE 字段。您可以使用数据库函数将 varchar 转换为 DATE 进行比较,例如使用 EclipseLink 支持的 CAST 或 FUNCTION 是 JPQL。
见, http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/j_cast.htm#cast
http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/j_func.htm#func