sql datetime 赋值错误

[复制链接]
查看11 | 回复3 | 2009-4-8 08:25:41 | 显示全部楼层 |阅读模式
一个表
CREATE TABLE worker
(wno INT PRIMARY KEY,
wname CHAR(8),
sex CHAR(2),
birthday DATETIME,
party BIT,
wdate DATETIME,
dno INT,
FOREIGN KEY (dno) REFERENCES depart (dno)
);
插入语句
INSERT
INTO worker
VALUES(7,'刘夫文','男',01/11/42,0,08/10/60,2);
为什么从表里面看的时候 应该是01/11/42和08/10/60的地方是1900-01-01 00:00:00.000啊···
如果插入的时候 用的VALUES(7,'刘夫文','男','01/11/42',0,'08/10/60',2);就会是类型出错了 成了char向datetime变换了
如果是
INSERT
INTO worker
VALUES(9,'刘夫文','男',1942-01-11,0,1960-08-10,2);
的话
记录中的两个时间分别是1905-04-15 00:00:00.000
1905-04-27 00:00:00.000
怎么回事啊
如果日期加上引号的话类型不匹配出错了 成立char的了

回复

使用道具 举报

千问 | 2009-4-8 08:25:41 | 显示全部楼层
VALUES(7,'刘夫文','男','01/11/42',0,'08/10/60',2);这种日期格式是允许的。。 只是你写的'01/11/42'和'08/10/60'已经溢值了。正确的写法是:'01/11/1942', '08/10/1960'其实我也没这种书写习惯。。 我都是用'2008-01-01'这种日期格式的~~~...
回复

使用道具 举报

千问 | 2009-4-8 08:25:41 | 显示全部楼层
你输入的日期格式不对 INSERT INTO worker VALUES(7,'刘夫文','男','2009-1-1',0,'2009-1-2',2);插入时日期的也要加单引号,你那个没加单引号。...
回复

使用道具 举报

千问 | 2009-4-8 08:25:41 | 显示全部楼层
看你数据库的时间格式不是所有的数据库都会把08/10/60认为是时间格式还是用规范的时间格式吧yyyy-mm-dd(2009-04-08)...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行