ORACLE怎样把字符串转成时间格式 10
要把一个表D1里的CLSJ(测量时间格式是12:00:00)和CLRQ(测量日期格式是2010-3-23)这两个字符串字段插入到另外一个表D2里,要求这两个字段为日期型,...
要把一个表D1里的CLSJ(测量时间格式是12:00:00)和CLRQ(测量日期格式是2010-3-23)这两个字符串字段插入到另外一个表D2里,要求这两个字段为日期型,使用语句to_date(:new.CLSJ,'hh24:mi:ss'),
to_date(:new.CLRQ,'YYYY-MM-DD'),为什么在D2表里CLSJ的格式是(2010-3-1 12:00:00)可是当前日期是2010-3-23日啊,怎样只让CLRQ这个字段只显示时间12:00:00。程序如下:
create or replace trigger triger_DBZ1019
after insert on D1
for each row
declare
num number(1);
begin
select count(*)
into num
from D2
where TO_CHAR(CLSJ,'hh24:mi:ss')=:new.clsj and to_char(clrq,'YYYY-MM-DD')=:NEW.CLRQ;
if num = 0 then
insert into D2
(DWMC,
CLSJ,
CLRQ,
ZM
)
values
(:new.DWMC,
to_date(:new.CLSJ,'hh24:mi:ss'),
to_date(:new.CLRQ,'YYYY-MM-DD'),
:new.ZM
);
end if;
end triger_DBZ1019; 展开
to_date(:new.CLRQ,'YYYY-MM-DD'),为什么在D2表里CLSJ的格式是(2010-3-1 12:00:00)可是当前日期是2010-3-23日啊,怎样只让CLRQ这个字段只显示时间12:00:00。程序如下:
create or replace trigger triger_DBZ1019
after insert on D1
for each row
declare
num number(1);
begin
select count(*)
into num
from D2
where TO_CHAR(CLSJ,'hh24:mi:ss')=:new.clsj and to_char(clrq,'YYYY-MM-DD')=:NEW.CLRQ;
if num = 0 then
insert into D2
(DWMC,
CLSJ,
CLRQ,
ZM
)
values
(:new.DWMC,
to_date(:new.CLSJ,'hh24:mi:ss'),
to_date(:new.CLRQ,'YYYY-MM-DD'),
:new.ZM
);
end if;
end triger_DBZ1019; 展开
5个回答
展开全部
0.日期时间格式Year:yy two digits 两位年 显示值:07yyy three digits 三位年 显示值:007yyyy four digits 四位年 显示值:2007
Month:mm number 两位月 显示值:11mon abbreviated 字符集表示 显示值:11月,若是英文版,显示novmonth spelled out 字符集表示 显示值:11月,若是英文版,显示november
Day:dd number 当月第几天 显示值:02ddd number 当年第几天 显示值:02dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示friday spelled out 当周第几天全写 显示值:星期五,若是英文版,显示fridayddspth spelled out, ordinal twelfth
Hour:hh two digits 12小时进制 显示值:01hh24 two digits 24小时进制 显示值:13
Minute:mi two digits 60进制 显示值:45
Second:ss two digits 60进制 显示值:25
其它Q digit 季度 显示值:4WW digit 当年第几周 显示值:44W digit 当月第几周 显示值:1
Month:mm number 两位月 显示值:11mon abbreviated 字符集表示 显示值:11月,若是英文版,显示novmonth spelled out 字符集表示 显示值:11月,若是英文版,显示november
Day:dd number 当月第几天 显示值:02ddd number 当年第几天 显示值:02dy abbreviated 当周第几天简写 显示值:星期五,若是英文版,显示friday spelled out 当周第几天全写 显示值:星期五,若是英文版,显示fridayddspth spelled out, ordinal twelfth
Hour:hh two digits 12小时进制 显示值:01hh24 two digits 24小时进制 显示值:13
Minute:mi two digits 60进制 显示值:45
Second:ss two digits 60进制 显示值:25
其它Q digit 季度 显示值:4WW digit 当年第几周 显示值:44W digit 当月第几周 显示值:1
展开全部
既然你的D2表里对应的是DATE类型,你用to_date()的方式插进去语法是对的,但date类型本来就是年日月时分秒都包含,所以它会自动给你加上年日月(默认都加的2010-03-01)。所以最好D2那边的列也是字符型的,或者查询D2的时候加上to_char(xxx,'hh24:mi:ss')将年月日过滤掉。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
to_date函数
比如
select
to_date('2015-02-03','yyyy-mm-dd')
from
dual注意:2015-02-03格式要与yyyy-mm-dd一致
比如
select
to_date('2015-02-03','yyyy-mm-dd')
from
dual注意:2015-02-03格式要与yyyy-mm-dd一致
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.上面有些不明白你的意思,你用的是触发器记录日期。
如果需要当前时间就用: sysdate
2. 怎样只让CLRQ这个字段只显示时间12:00:00。
to_date(:new.CLRQ,'hh24:mi:ss'),
如果需要当前时间就用: sysdate
2. 怎样只让CLRQ这个字段只显示时间12:00:00。
to_date(:new.CLRQ,'hh24:mi:ss'),
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
to_date("yyyy-mm-dd hh:mm:ss","xxxx-xx-xx xx:xx:xx")
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询