怎么往mysql数据库日期类型里插入日期时分???

如何向&Oracle&表中的&Date&字段插入日期及时间
&Oracle中与sqlserver
插入日期型数据时,有比较大的区别。sqlserver中,直接把日期型数据用单引号括起来就可以,而Oracle却必须用to_date('',''')这种强类型转换函数显示转换为Date类型。
例子(带时分秒):
insert&into&&table(j)&values(to_date('&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)
不带时分秒:
工作中要用到&Oracle
9i,经常要向其中的某张表插入事件发生的日期及时间。专门就&Oracle&的日期及时间显示方式和插入方式记一笔。
像&Number,varchar2&等内置的数据类型一样,Oracle
用&Date&这个内置的数据类型来存储日期和时间。和
MS SQL Server 一样,日期和时间是存储在一个数据类型里的,没有只存储时间或只存储日期的单独的时间和日期数据类型。DATE
数据类型存储年月日和时分秒。
当显示&DATE&类型的数据时,Oracle
先要把存储的值从内部保存格式转化为可输出的字符串。通常,这种转换是通过&TO_CHAR&这个函数来完成的。如果没有用&TO_CHAR&函数来指定特定的日期时间格式,Oracle
默认的显示格式是“DD-MON-YY”。
例如,我们创建了一个表
create table x(a int, b date);
然后我们执行下面的查询语句:
我们会看到如下结果(set
------------
(语言是英语)
-------------
01-四月 -08
(语言是中文)
也就是说,每次显示 DATE 类型的数值时,Oracle
会自动调用&TO_CHAR&函数,并以默认日期显示格式为参数。我们可以显式地调用&TO_CHAR&函数,并指定自己想要的格式。例如:
SELECT TO_CHAR(b, 'YYYY/MM/DD') AS b FROM
返回的结果是:
------------
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 类型。
显示日期时间时会隐性调用&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(':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('');
已创建1行。
Oracle 内置的函数 SYSDATE 可以返回系统当前的日期和时间,例如:
select to_char(sysdate, 'Dy DD-Mon-YYYY HH24:MI:SS') as "Current Time"
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". 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
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. &
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

我要回帖

更多关于 数据库日期类型 的文章

 

随机推荐