你好!
创新互联是一家专注网站建设、网络营销策划、微信小程序、电子商务建设、网络推广、移动互联开发、研究、服务为一体的技术型公司。公司成立十余年以来,已经为上千多家成都户外休闲椅各业的企业公司提供互联网服务。现在,服务的上千多家客户与我们一路同行,见证我们的成长;未来,我们一起分享成功的喜悦。
直接使用date类型就可以,该类型精确到秒
如果字符串转日期使用to_date函数
如
to_date('20151112','yyyymmdd')
或to_date('20151112
13:11:11','yyyymmdd
hh24:mi:ss')
如果对你有帮助,望采纳。
Oracle的日期模式不是在建表时定义的,是在建数据库是确定的,由参数NLS_LANGUAGE确定,这主要是指默认输入、输出格式,并不是指存储格式,Date类型字段中存放的是一个精确到毫秒的数据,查询时用to_char函数可以把数据输出成你想要的格式。
oracle中没有datetime类型的字段,只有date类型,可以参考以下语句:
create table test
(id int,
time date default sysdate);
其中default sysdate就是代表默认的系统时间,验证方法如下:
insert into test (id) values (1);
commit;
结果截图:
插入的时间与系统时间是一致的,说明设置默认时间是成功的。
一楼的建表语句是错误的,oracle没有int类型
CREATE
TABLE
XS
(
idno
number,
sp_id
number,
numb
number,
xs_date
date
);
建表的时候设置xs_date
为date就可以了
插入数据
INSERT
INTO
XS
(idno,sp_id,numb,xs_date)
VALUES
(11,
2,
12,
to_date('2005-1-15','yyyy-mm-dd')
插入数据的时候需要用to_date函数将2005-1-15转换为日期类型就可以了
这个问题在项目中是一个很重要的细节,具体有两种处理方式,主要取决于这个表是否需要进行数据交换,以及这个时间字段如何使用,具体举两个例子吧:
一、使用varchar2型
1、如果这张表对时间的精度要求不高,比如只是到日。
2、该表需要经常与其他表进行数据交互,比较,查询,并且其他表的时间精度不高于日(比如日、月、季度)
3、存储大量数据用于统计分析,如本期、同期,累计值等。
存储的时候需要格式化,例如:to_char(sysdate,'yyyy-mm-dd');
二、使用date型。
1、对时间精度要求较高,比如到秒;
2、需要与其他表做数据交互,更偏重于”准实时“交互,比如每15秒同步一次数据;
3、不用于统计分析(这点很重要,需要统计分析的话,强烈不建议使用date型);
4、该表数据不做物理删除(删除时只更新标志位和删除时间);
以上我这几年的实际项目经验,希望可以帮到你。