如何向 Oracle 表中的 Date 字段插入日期及时间
 Oracle中与sqlserver 插入日期型数据时,有比较大的区别。sqlserver中,直接把日期型数据用单引号括起来就可以,而Oracle却必须用to_date('',''')这种强类型转换函数显示转换为Date类型。
例子(带时分秒):
insert into  table(j) values(to_date('2000-11-26 00:04:47','yyyy-mm-dd hh24:mi:ss'));
代买参数化例子:
INSERT INTO kj_xj_gengzhengfenshu(yonghudaihao,caozuoshijian,kaoshiriqi,zhunkaozhenghao, xingming,kechengdaihao,yuanshifen,genggaifen,renyuanxinming,dengjihao,beizhu) VALUES(:yonghudaihao,to_date(:ldt_up_time,'yyyy-mm-dd hh24:mi:ss '),:is_kaoci,:ls_zkzh,:ls_xm,:ls_kcdh,:li_ysf,:li_gzf,:gstr_operator_trueName,:ls_djh,:ls_beizhu)
不带时分秒:
如何向 <wbr>Oracle <wbr>表中的 <wbr>Date <wbr>字段插入日期及时间

工作中要用到 Oracle 9i,经常要向其中的某张表插入事件发生的日期及时间。专门就 Oracle 的日期及时间显示方式和插入方式记一笔。
像 Number,varchar2 等内置的数据类型一样,Oracle 用 Date 这个内置的数据类型来存储日期和时间。和 MS SQL Server 一样,日期和时间是存储在一个数据类型里的,没有只存储时间或只存储日期的单独的时间和日期数据类型。DATE 数据类型存储年月日和时分秒。
当显示 DATE 类型的数据时,Oracle 先要把存储的值从内部保存格式转化为可输出的字符串。通常,这种转换是通过 TO_CHAR 这个函数来完成的。如果没有用 TO_CHAR 函数来指定特定的日期时间格式,Oracle 默认的显示格式是“DD-MON-YY”。
例如,我们创建了一个表 x:

create table x(a int, b date);
然后我们执行下面的查询语句:

select b from x; 
我们会看到如下结果(set head on):

B
------------ 
01-APR-08 
(语言是英语)

B
------------- 
01-四月 -08 
(语言是中文)
也就是说,每次显示 DATE 类型的数值时,Oracle 会自动调用 TO_CHAR 函数,并以默认日期显示格式为参数。我们可以显式地调用 TO_CHAR 函数,并指定自己想要的格式。例如:
SELECT TO_CHAR(b, 'YYYY/MM/DD') AS b FROM x;
返回的结果是:

B
------------ 
2008/04/01
TO_CHAR 是个很强大的函数,可以把 Date,MLSLABEL,Number 类型的数据按指定的格式转换为VARCHAR2 类型的数据,我们在这里只关心日期时间的转换。语法:
TO_CHAR(d [, fmt [, 'nlsparams'] ])
d 是 Date 类型的变量,fmt 是我们指定的日期时间格式,如果不显式指定就用 Oracle 的默认值。 fmt 里常用的跟日期时间有关的占位符如下:
MM 用数字表示的月份(例如,07)
MON 缩写的月份名称(例如,JUL)
MONTH 完整的月份名称(例如,JULY)
DD 日期(例如, 24)
DY 星期几的缩写(例如,FRI)
YYYY 用4位表示的年份(例如, 2008)
YY 用2位表示的年份,取年份的后两位(例如,08)
RR 跟 YY 类似,但两位表示的年份被近似到 1950 到 2049 这个范围里的年份,例如 06 被认为是 2006,而不是 1906
AM (或 PM) 上下午指示符
HH 12进制表示的时间(1-12)
HH24 24进制表示的时间(0-23)
MI 分钟(0-59)
SS 秒(0-59)
以上讲的是利用 TO_CHAR 函数来显示 DATE 类型的数据,下面讲讲如何向表里插入一个 Date 类型的数值。这时我们要用到 TO_DATE 这个函数,把字符串表示的日期转换为 Date 类型。
跟 Oracle 显示日期时间时会隐性调用 TO_CHAR 函数一样,当 Oracle 期望一个 Date 类型的值时,它会隐性调用 TO_DATE 函数来转换输入的字符串,依据的默认格式是“DD-MON-YY”。
还是以我们的 x 表为例,我们可以直接输入:

insert into x values(99, '31-may-08');
但是,在显示时不管用什么格式都不会影响我们实际储存的数据;在插入时,单纯采用 Oracle 的默认格式就不是那么符合工作需要了,我们还是需要显式调用 TO_DATE 函数,例如:

insert into x values(99, to_date('2008/05/31:12:00:00AM', 'yyyy/mm/dd:hh:mi:ssam'));
TO_DATE 函数的语法:
TO_DATE(char [, fmt [, 'nlsparams'] ])
char 是表示日期和时间的字符串。fmt 的表示方法和 TO_CHAR 函数一样。
我们前面一直提到 Oracle 默认的日期时间格式是“DD-MON-YY”,其实,我们还可以修改这个默认格式,把它改成我们需要的格式。在 SQL*plus 里面输入下面的命令:
alter session set NLS_DATE_FORMAT='';   ——这个改变只对当前的会话(session)有用。
例如:

SQL> alter   session   set   nls_date_format='yyyy-mm-dd';
会话已更改。
SQL> insert  into  x (b)  values('2004-08-26');
已创建1行。
用 Oracle 内置的函数 SYSDATE 可以返回系统当前的日期和时间,例如:

select to_char(sysdate, 'Dy DD-Mon-YYYY HH24:MI:SS') as "Current Time" from dual;
Two interesting things to note here:
You can use double quotes to make names case sensitive (by default, SQL is case insensitive), or to force spaces into names. Oracle will treat everything inside the double quotes literally as a single name. In this example, if "Current Time" is not quoted, it would have been interpreted as two case insensitive names CURRENT and TIME, which would actually cause a syntax error. DUAL is built-in relation in Oracle which serves as a dummy relation to put in the FROM clause when nothing else is appropriate. For example, try "select 1+2 from dual;". Another name for the built-in function SYSDATE is CURRENT_DATE. Be aware of these special names to avoid name conflicts.
Operations on DATE You can compare DATE values using the standard comparison operators such as =, !=, >, etc.
 
You can subtract two DATE values, and the result is a FLOAT which is the number of days between the two DATE values. In general, the result may contain a fraction because DATE also has a time component. For obvious reasons, adding, multiplying, and dividing two DATE values are not allowed.
You can add and subtract constants to and from a DATE value, and these numbers will be interpreted as numbers of days. For example, SYSDATE+1 will be tomorrow. You cannot multiply or divide DATE values.
With the help of TO_CHAR, string operations can be used on DATE values as well. For example, to_char(, 'DD-MON-YY') like '%JUN%' evaluates to true if is in June.

如何向 Oracle 表中的 Date 字段插入日期及时间相关推荐

  1. 应用ROWDEPENDENCIES行级跟踪,查询oracle表中数据行上最后的DML时间

    在Oracle 10g中的引入了ORA_ROWSCN伪列新特性.基于此种伪列所提供的信息,我们可以方便地找出某个数据块或某一个行最近被修改 的时间戳.它又分为两种模式:一种是基于block这是默认的模 ...

  2. oracle表中增加字段 sql语句,ORACLE中通过SQL语句(alter table)来增加、删除、修改字段...

    1.添加字段: alter table  表名  add (字段  字段类型)  [ default  '输入默认值']  [null/not null]  ; 2.添加备注: comment on ...

  3. 查询oracle表中的字段名和字段类型

    查询oracle表中的字段名和字段类型 SELECT b.column_name column_name --字段名,b.data_type data_type --字段类型,b.data_lengt ...

  4. oracle 字段补充空格,oracle表中某个字段含有字符回车、空格的手动修改方式

    select t.*, t.rowid from TB_SD_STANDARD_CHOOSE_ADVISE t where t.id =323900000 update TB_SD_STANDARD_ ...

  5. oracle删除字段约束条件,Oracle 数据库中关于对表字段约束的操作(设置、删除、查询)...

    Oracle 数据库中关于对表字段约束的操作(设置.删除.查询) 1. 给表的单个字段加约束 SQL> ALTER TABLE 表名 ADD UNIQUE(字段名); 2. 删除表的单个字段约束 ...

  6. SQL 触发器 当修改TEST表中的F1字段时,同时根据条件修改F2字段

    Code --当外修改TEST表中的F1字段时,同时根据条件修改F2字段 ALTER TRIGGER [dbo].[updatetest1] ON [dbo].[TEST]  FOR INSERT,  ...

  7. mysql 查询指定字段数据_MySQL使用select语句查询指定表中指定列(字段)的数据

    本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...

  8. 修改Mysql表中自增字段的初始值

    修改Mysql表中自增字段的初始值: ALTER TABLE employee AUTO_INCREMENT=2; 解释:将表employee自增字段的初始值设置为2

  9. Sqlserver别太信任SysComments表中的text字段

    1.用SysComments的原因 最近新模块的开发,需要更改和新增的存储过程比较多,为了同步开发环境和测试环境的存储过程,能在更新程序后,马上能整理出更改的存储过程脚本,并更新到测试DB服务器上,我 ...

最新文章

  1. 10个常用python标准库_【循序渐进学Python】11.常用标准库
  2. MySQL笔记-事务理论及并发存在的三个问题(脏读、不可重复读、幻读)演示
  3. python决策树多分类代码_绘制决策树分类的多类ROC曲线
  4. JDBC学习(七、批处理操作)
  5. Atitit 人员评价能力模型 目录 1.1. 深度、大局观、 1 1.2. 影响力, 影响力 分享 1 1.3. 业务洞察力 价值识别 1 1.4. 视野 战略和人才 专业 1 1.5.
  6. PMP考试有哪些技巧?(技巧+资料分享)
  7. 智慧园区大数据平台建设方案(ppt)
  8. github分支操作
  9. Ubuntu动态壁纸
  10. (3)网页视频获取下载案例3
  11. 一分钟解决“仅限中国大陆地区播放” (转)
  12. 【外贸收款】拉美银行BBVA介绍
  13. 20实际最牛逼的10大算法
  14. Influx 安装、配置
  15. C++如何实现猜数游戏
  16. C语言字符串类型定义(二维字符数组模拟连续存储多个字符串)(以小凡点名为例)
  17. 无BUG微信去水印小程序源码(可运营美化版+送免费接口)
  18. 0503定积分的换元法和分部积分法-定积分-高等数学
  19. 2005年2月24日
  20. java下载Excel乱码

热门文章

  1. C#Net开发 手机网站和普通网站有什么区别
  2. 射频和无线技术入门--电路和信号--6
  3. MySQL数据库之数据查询
  4. 【经验分享】RT-Thread UART设备驱动框架初体验(中断方式接收带\r\n的数据)
  5. [转]文档去重算法:SimHash和MinHash
  6. 从小米盒子看高清播放器市场
  7. ipqc异常处理流程图_IPQC品质控制之首件确认与异常处理流程
  8. 苹果电脑压缩视频怎么压缩?大小画质不变?
  9. vscode——HTML基本标签A标签超级链接
  10. 论文阅读笔记:Deep Chain HDRI: Reconstructing a HDR Image from a Single LDR Image