私が取り組んでいる現在のプロジェクトでは、Oracle DBMS を使用してデータを格納しています。開発中に、Date 情報が Date フィールドではなく、奇妙なフォーマットの 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 句でこの日付を使用するクエリを作成する必要があるため、心配していますが、そのアプローチでインデックスのパフォーマンスがどうなるかわかりません。では、私が言及した設計に含まれる問題は何ですか? VARCHAR2ではなくNUMBERの日付フィールドの方が良いでしょうか?