最近工作中同事把时间字段设置为char(10),格式为yyyy-mm-dd,就想这怎么设置char默认值为2099-12-31,一开始这样写的:
-- Create table
create table tsql_test_chardef
(
t_id number(4) not null,
start_date char(10),
end_date varchar2(10)
);
-- Add/modify columns
alter table TSQL_TEST_CHARDEF modify start_date default 2099-12-31;
alter table TSQL_TEST_CHARDEF modify end_date default 2099-12-31;
结果为:
正确方法是:
-- Add/modify columns
alter table TSQL_TEST_CHARDEF modify start_date default '2099-12-31';
alter table TSQL_TEST_CHARDEF modify end_date default '2099-12-31';
结果为:
或者:
-- Add/modify columns
alter table TSQL_TEST_CHARDEF modify start_date default to_char('2099-12-31');
alter table TSQL_TEST_CHARDEF modify end_date default to_char('2099-12-31');
同理,设置date默认值方法为:
-- Add/modify columns
alter table TSQL_TEST_CHARDEF modify done_date default to_date('2099-12-31','yyyy-mm-dd');
全文完。