我正在为数据库生成虚拟数据,一个属性正在使用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');
这可能吗?非常感谢...
EDIT ----
如何摆脱时间戳列大空间
答案 0 :(得分:8)
每当您处理DATE
或TIMESTAMP
数据类型时,都应始终插入DATE
或TIMESTAMP
值。您不应该插入字符串并依赖隐式转换将字符串转换为DATE
或TIMESTAMP
。您应该明确调用TO_DATE
或TO_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') );
您可以通过更改格式掩码来调整SQL * Plus在特定列中显示数据的方式。例如,
SQL> column dept_time format a30;
SQL> column arrv_time format a30;
将导致SQL * Plus以30个水平字符显示DEPT_TIME
和ARRV_TIME
(如果您更改NLS_TIMESTAMP_FORMAT
,则当前NLS_TIMESTAMP_FORMAT
似乎会生成28个字符字符串,您可能想要更改要求SQL * Plus显示的列的宽度。
答案 1 :(得分:1)
请查看以下示例:
ALTER SESSION SET nls_timestamp_format = 'YYYY-MM-DD HH24:MI:SS';
SELECT *
FROM orders
WHERE ordered_at
BETWEEN '2013-10-06 12:00:00'
AND '2013-10-06 16:00:00'