最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Oracle自动插入当前时间的年月日YYYY-MM-DD格式的实现

来源:动视网 责编:小采 时间:2020-11-09 11:34:16
文档

Oracle自动插入当前时间的年月日YYYY-MM-DD格式的实现

Oracle自动插入当前时间的年月日YYYY-MM-DD格式的实现:oracle没有date()函数,sysdate函数的值是包括时分秒的,要实现插入当前时间默认值还真麻烦. Oracle没有date()函数,sysdate函数的值是包括时分秒的,要实现插入当前时间默认值还真麻烦. 只好自己写储存过程,而字段默认值里面又不能调用储存过程,还得写个触发
推荐度:
导读Oracle自动插入当前时间的年月日YYYY-MM-DD格式的实现:oracle没有date()函数,sysdate函数的值是包括时分秒的,要实现插入当前时间默认值还真麻烦. Oracle没有date()函数,sysdate函数的值是包括时分秒的,要实现插入当前时间默认值还真麻烦. 只好自己写储存过程,而字段默认值里面又不能调用储存过程,还得写个触发


oracle没有date()函数,sysdate函数的值是包括时分秒的,要实现插入当前时间默认值还真麻烦.

Oracle没有date()函数,sysdate函数的值是包括时分秒的,要实现插入当前时间默认值还真麻烦.

只好自己写储存过程,而字段默认值里面又不能调用储存过程,还得写个触发器!而储存过程里面取出来的sysdate前几位的只却变成17-11月-07的格式了,不是自己想要的,2007-11-17的格式,又得单独取年月日再组合起来,这样一来返回值就不能是日期类型而要字符类型了.

一个字,烦!不过还是把他实现了.下面把代码给大家分享一下,如果有更好的方法麻烦告知.

1.储存过程

CREATE OR REPLACE FUNCTION "GET_DATE" RETURN VARCHAR2
IS
yyyy varchar2(36);
mm varchar2(36);
dd varchar2(36);
tempdate varchar2(36);
BEGIN
tempdate := '';
select to_char(to_date(sysdate),'YYYY') into yyyy from dual;
select to_char(to_date(sysdate),'MM') into mm from dual;
select to_char(to_date(sysdate),'DD') into dd from dual;
tempdate := substr(yyyy,1,4)|| '-'||
substr(mm,1,2)|| '-'||
substr(dd,1,2)
;
return tempdate;
END;

2.触发器

CREATE OR REPLACE TRIGGER STATWEEK_tg
--STATWEEK fdate 的触发器
BEFORE INSERT ON STATWEEK FOR EACH ROW
BEGIN
SELECT get_date INTO :NEW.fdate FROM DUAL;
END;

注:这里的STATWEEK为对应的数据表 fdate为自动增长的字段,get_date为对应的储存过程名.

3.数据表

-- Create table
create table STATWEEK
(
星期一 VARCHAR2(20) default 0,
星期二 VARCHAR2(20) default 0,
星期三 VARCHAR2(20) default 0,
星期四 VARCHAR2(20) default 0,
星期五 VARCHAR2(20) default 0,
星期六 VARCHAR2(20) default 0,
星期日 VARCHAR2(20) default 0,
TWEEK VARCHAR2(10),
ADMIN VARCHAR2(50),
FDATE VARCHAR2(20)
)

文档

Oracle自动插入当前时间的年月日YYYY-MM-DD格式的实现

Oracle自动插入当前时间的年月日YYYY-MM-DD格式的实现:oracle没有date()函数,sysdate函数的值是包括时分秒的,要实现插入当前时间默认值还真麻烦. Oracle没有date()函数,sysdate函数的值是包括时分秒的,要实现插入当前时间默认值还真麻烦. 只好自己写储存过程,而字段默认值里面又不能调用储存过程,还得写个触发
推荐度:
标签: 格式 自动 时间
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top