导出时的 datetime64[ns] 列在 Oracle DB 中显示为 DATE 数据类型

datetime64[ns] column on export is displayed as DATE datatype in Oracle DB

在我的数据框中,我有一个名为 'DateStamp' 的列,它将今天的日期显示为 2021-09-10 00:19:57.593350

final_df['DateStamp'] = pd.to_datetime('today')

但是,当我将数据框导出到我的 Oracle 数据库时,DateStamp 列是使用 DATA_TYPE 作为 DATE 而不是时间戳

创建的
dtyp2 = {c:types.VARCHAR(final_df_toDB[c].str.len().max())
    ...:         for c in final_df_toDB.columns[final_df_toDB.dtypes == 'object'].tolist()}

final_df_toDB.to_sql('sample_table',engine_conn, if_exists='append', index=False, dtype=dtyp2)

因此,我的 Oracle Table 只显示时间戳的日期部分。但是,我希望该列显示整个日期戳

在oracle中,DATE实际上是日期和时间,精确到秒。 DATE 的显示格式 由客户端控制,大多数默认只显示日期,但时间组件仍然存在:

SQL> select sysdate default_format,
  2         to_char(sysdate,'dd-Mon-yyyy') dateonly,
  3         to_char(sysdate,'hh24:mi:ss') timeonly,
  4         to_char(sysdate,'dd-Mon-yyyy hh24:mi:ss') date_time
  5  from dual
  6  ;

DEFAULT_F DATEONLY             TIMEONLY DATE_TIME
--------- -------------------- -------- -----------------------------
09-SEP-21 09-Sep-2021          14:15:19 09-Sep-2021 14:15:19

1 row selected.