我正在为一个数据库生成虚拟数据,其中一个属性是使用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');
这个是可能的吗?非常感谢。
编辑
如何摆脱时间戳列的巨大空间?
发布于 2012-03-18 11:14:15
无论何时处理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
似乎生成了28个字符串,如果您更改了NLS_TIMESTAMP_FORMAT
,您可能想要更改您请求SQL*Plus显示的列的宽度)。
发布于 2013-10-10 18:12:48
请看下面的例子:
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'
https://stackoverflow.com/questions/9755556
复制相似问题