TIMESTAMP(6)Oracle Insert

Dav*_*cia 3 oracle relational-database oracle11g database-schema

我正在为数据库生成虚拟数据,一个属性正在使用TIMESTAMP(6).

谁能给我一个价值看起来如何的例子?

此外,我希望能够插入日期

03/18/2012 02:35 AM

所以它看起来像

INSERT INTO FLIGHT VALUES (1,'London Heathrow','Miami Airport','03/18/2012 02:35 AM','04/18/2012 13:35 PM');
Run Code Online (Sandbox Code Playgroud)

这可能吗?非常感谢...

编辑 - -

我怎样才能摆脱时间戳列巨大的空间

空间

Jus*_*ave 8

无论何时处理数据类型DATETIMESTAMP数据类型,都应始终插入DATETIMESTAMP赋值.您不应该插入字符串并依赖隐式转换将字符串转换为a DATE或a TIMESTAMP.你应该明确地打电话TO_DATETO_TIMESTAMP.您的INSERT语句还应明确列出要插入的列的名称.

你希望你的INSERT陈述看起来像这样

INSERT INTO FLIGHT( <<list of columns>> )
  VALUES (1,
         'London Heathrow',
         'Miami Airport',
         to_timestamp( '03/18/2012 02:35 AM', 'MM/DD/YYYY HH:MI AM'),
         to_timestamp( '04/18/2012 13:35 PM', 'MM/DD/YYYY HH:MI AM') );
Run Code Online (Sandbox Code Playgroud)

您可以通过更改格式掩码来调整SQL*Plus在特定列中显示数据的方式.对于Eg

SQL> column dept_time format a30;
SQL> column arrv_time format a30;
Run Code Online (Sandbox Code Playgroud)

将导致SQL*Plus显示两个DEPT_TIMEARRV_TIME30个水平字符(您当前NLS_TIMESTAMP_FORMAT显示生成28个字符串,如果您更改NLS_TIMESTAMP_FORMAT,您可能想要更改要求SQL*Plus显示的列的宽度).