急!!!SQL语句问题:创建表格时,涉及到日期,如birthday,数据类型只能定义为datetime么?

我的语句:
create table a
(id int not null identitf(1,1) primary key,
birthday datetime
);
输入数据:
insert into a values ('1','20100306');
表格显示时间是:2010-03-06 00:00:00.000
我现在不想要后面那些00:00:00.000,该怎么创建表?

还可以定义为smalldatetime,但是直接查询出来的还是2010-03-06 00:00:00,
如果你想把后面的00:00:00去掉,查询语句可以这样写
select CONVERT(varchar(10),birthday,110) 'birthday' from a
这样查出来的就是‘03-06-2010’追问

也就是说建表的时候数据类型只能定义为datetime,要想显示我想要的格式就得在查询语句上下功夫了呗?

追答

是的,因为一般情况下,时间字段应该定义为长时间类型,也就是datetime类型,然后查询时根据需要,用Convert函数调整格式,如果你用smallDatetime或者date的话,时间不是完整的长度,比如用smalldatetime,时间只能精确到秒,用date的话根本查不出天以下的时间单位。

追问

谢啦

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-07-14
birthday date
.这样就行了
第2个回答  2011-07-14
改成
create table a
(id int not null identitf(1,1) primary key,
birthday date
);
试试追问

无法找到数据类型date

追答

应该可以的肯定有DATE类型的
create table a
(id int not null identitf(1,1) primary key,
birth DATE
);