我正在进行的当前项目使用 Oracle DBMS 来存储数据。在开发过程中,我发现日期信息没有存储在日期字段中,而是存储在带有一些奇怪格式的 VARCHAR2 列中。例如,看这个表:
CREATE TABLE "A_TABLE"
(
"OSERC_FEC_INICIO_OS" VARCHAR2(14 BYTE),
"OSERC_FEC_FIN_OS" VARCHAR2(14 BYTE),
"OSERC_FEC_REGISTRO_PETICION" VARCHAR2(14 BYTE),
"OSERC_FEC_APROBACION_PETICION" VARCHAR2(14 BYTE),
"OSERC_FEC_LIQUIDACION_OS" VARCHAR2(14 BYTE),
"OSERC_FEC_EJECUCION_OS" VARCHAR2(14 BYTE),
)
字段OSERC_FEC_REGISTRO_PETICION, OSERC_FEC_APROBACION_PETICION, OSERC_FEC_LIQUIDACION_OS
和OSERC_FEC_EJECUCION_OS
存储日期信息,但声明为 VARCHAR2 列。如果您检查数据,您会发现他们使用该格式YYYYMMDDHHMMSS
来存储该信息。
我很担心,因为我需要在 WHERE 子句中构建使用此日期的查询,而且我不确定使用该方法的索引性能如何。那么,我提到的设计中涉及到哪些问题呢?NUMBER而不是VARCHAR2的日期字段会更好吗?