首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >时间戳(6) Oracle插入

时间戳(6) Oracle插入
EN

Stack Overflow用户
提问于 2012-03-18 10:38:34
回答 2查看 68.8K关注 0票数 3

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

有没有人能给我举个例子说明这个值是什么样子的?

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

03/18/2012 02:35 AM

这样看起来就像

代码语言:javascript
运行
复制
INSERT INTO FLIGHT VALUES (1,'London Heathrow','Miami Airport','03/18/2012 02:35 AM','04/18/2012 13:35 PM');

这个是可能的吗?非常感谢。

编辑

如何摆脱时间戳列的巨大空间?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-18 11:14:15

无论何时处理DATETIMESTAMP数据类型,都应该始终插入DATETIMESTAMP值。您不应该插入字符串并依赖隐式转换将字符串转换为DATETIMESTAMP。您应该显式调用TO_DATETO_TIMESTAMP。您的INSERT语句还应该显式地列出要插入的列的名称。

您可能希望您的INSERT语句看起来像这样

代码语言:javascript
运行
复制
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在特定列中显示数据的方式。例如。

代码语言:javascript
运行
复制
SQL> column dept_time format a30;
SQL> column arrv_time format a30;

将使SQL*Plus以30个水平字符同时显示DEPT_TIMEARRV_TIME (您当前的NLS_TIMESTAMP_FORMAT似乎生成了28个字符串,如果您更改了NLS_TIMESTAMP_FORMAT,您可能想要更改您请求SQL*Plus显示的列的宽度)。

票数 10
EN

Stack Overflow用户

发布于 2013-10-10 18:12:48

请看下面的例子:

代码语言:javascript
运行
复制
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'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9755556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档