程序如下:
CREATE TABLE dbo.Dept(
DeptID INT IDENTITY NOT NULL PRIMARY KEY NONCLUSTERED,
DeptName VARCHAR(50)NOT NULL,
RaiseFactor NUMERIC(4,2)
)
ON [primary]
go
Create TABLE dbo.Employee(
EmployeeID INT IDENTITY NOT NULL,
DeptID INT FOREIGN KEY REFERENCES Dept,
LastName VARCHAR(50) NOT NULL,
FirstName VARCHAR(50) NOT NULL,
Salary INT,
PerformanceRating NUMERIC(4,2),
DateHire DATETIME,
DatePosition DATETIME
)
ON [primary]
go
--build the sample data
INSERT dbo.Dept VALUES ('Enginerring',1.2)
INSERT dbo.Dept VALUES ('Sales',.8)
INSERT dbo.Dept VALUES ('IT',2.5)
INSERT dbo.Dept VALUES ('Manufacturing',1.0)
go
INSERT dbo.Employee VALUES(1, 'Smith', 'Sam', 54000, 2.0, '1/1/97', '4/1/2001')
INSERT dbo.Employee VALUES(1, 'Nelson', 'Slim', 78000, 1.5, '9/1/88', '1/1/2000')
INSERT dbo.Employee VALUES(2, 'Ball', 'Sally', 45000, 3.5, '2/1/99', '1/1/2001')
INSERT dbo.Employee VALUES(2, 'Kelly', 'Jeff', 85000, 2.4, '10/1/83','9/1/1998')
INSERT dbo.Employee VALUES(3, 'Guelzow', 'Dave', 120000, 4.0, '7/1/95', '6/1/2001')
INSERT dbo.Employee VALUES(3, 'Cliff', 'Melissa', 95000, 1.8, '2/1/99', '9/1/1997')
INSERT dbo.Employee VALUES(4, 'Reagan', 'Frankie', 75000, 2.9, '4/1/00', '4/1/2000')
INSERT dbo.Employee VALUES(4, 'Adams', 'Hank', 34000, 3.2, '9/1/98', '9/1/1998')执行结果:服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
CREATE TABLE dbo.Dept(
DeptID INT IDENTITY NOT NULL PRIMARY KEY NONCLUSTERED,
DeptName VARCHAR(50)NOT NULL,
RaiseFactor NUMERIC(4,2)
)
ON [primary]
go
Create TABLE dbo.Employee(
EmployeeID INT IDENTITY NOT NULL,
DeptID INT FOREIGN KEY REFERENCES Dept,
LastName VARCHAR(50) NOT NULL,
FirstName VARCHAR(50) NOT NULL,
Salary INT,
PerformanceRating NUMERIC(4,2),
DateHire DATETIME,
DatePosition DATETIME
)
ON [primary]
go
--build the sample data
INSERT dbo.Dept VALUES ('Enginerring',1.2)
INSERT dbo.Dept VALUES ('Sales',.8)
INSERT dbo.Dept VALUES ('IT',2.5)
INSERT dbo.Dept VALUES ('Manufacturing',1.0)
go
INSERT dbo.Employee VALUES(1, 'Smith', 'Sam', 54000, 2.0, '1/1/97', '4/1/2001')
INSERT dbo.Employee VALUES(1, 'Nelson', 'Slim', 78000, 1.5, '9/1/88', '1/1/2000')
INSERT dbo.Employee VALUES(2, 'Ball', 'Sally', 45000, 3.5, '2/1/99', '1/1/2001')
INSERT dbo.Employee VALUES(2, 'Kelly', 'Jeff', 85000, 2.4, '10/1/83','9/1/1998')
INSERT dbo.Employee VALUES(3, 'Guelzow', 'Dave', 120000, 4.0, '7/1/95', '6/1/2001')
INSERT dbo.Employee VALUES(3, 'Cliff', 'Melissa', 95000, 1.8, '2/1/99', '9/1/1997')
INSERT dbo.Employee VALUES(4, 'Reagan', 'Frankie', 75000, 2.9, '4/1/00', '4/1/2000')
INSERT dbo.Employee VALUES(4, 'Adams', 'Hank', 34000, 3.2, '9/1/98', '9/1/1998')执行结果:服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
服务器: 消息 242,级别 16,状态 3,行 1
从 char 数据类型到 datetime 数据类型的转换导致 datetime 值越界。
语句已终止。
INSERT dbo.Dept VALUES ('Sales',.8)
INSERT dbo.Dept VALUES ('IT',2.5)
INSERT dbo.Dept VALUES ('Manufacturing',1.0)
goSET DATEFORMAT mdy --加入时间格式化goINSERT dbo.Employee VALUES(1, 'Smith', 'Sam', 54000, 2.0, '1/1/97', '4/1/2001')
INSERT dbo.Employee VALUES(1, 'Nelson', 'Slim', 78000, 1.5, '9/1/88', '1/1/2000')
INSERT dbo.Employee VALUES(2, 'Ball', 'Sally', 45000, 3.5, '2/1/99', '1/1/2001')
INSERT dbo.Employee VALUES(2, 'Kelly', 'Jeff', 85000, 2.4, '10/1/83','9/1/1998')
INSERT dbo.Employee VALUES(3, 'Guelzow', 'Dave', 120000, 4.0, '7/1/95', '6/1/2001')
INSERT dbo.Employee VALUES(3, 'Cliff', 'Melissa', 95000, 1.8, '2/1/99', '9/1/1997')
INSERT dbo.Employee VALUES(4, 'Reagan', 'Frankie', 75000, 2.9, '4/1/00', '4/1/2000')
INSERT dbo.Employee VALUES(4, 'Adams', 'Hank', 34000, 3.2, '9/1/98', '9/1/1998')
GO
DeptID INT IDENTITY NOT NULL PRIMARY KEY NONCLUSTERED,
DeptName VARCHAR(50)NOT NULL,
RaiseFactor NUMERIC(4,2)
)
ON [primary]
go
Create TABLE dbo.Employee(
EmployeeID INT IDENTITY NOT NULL,
DeptID INT FOREIGN KEY REFERENCES Dept,
LastName VARCHAR(50) NOT NULL,
FirstName VARCHAR(50) NOT NULL,
Salary INT,
PerformanceRating NUMERIC(4,2),
DateHire DATETIME,
DatePosition DATETIME
)
ON [primary]
go
--build the sample data
INSERT dbo.Dept VALUES ('Enginerring',1.2)
INSERT dbo.Dept VALUES ('Sales',.8)
INSERT dbo.Dept VALUES ('IT',2.5)
INSERT dbo.Dept VALUES ('Manufacturing',1.0)
go
INSERT dbo.Employee VALUES(1, 'Smith', 'Sam', 54000, 2.0, '1/1/1997', '4/1/2001')
INSERT dbo.Employee VALUES(1, 'Nelson', 'Slim', 78000, 1.5, '9/1/1988', '1/1/2000')
INSERT dbo.Employee VALUES(2, 'Ball', 'Sally', 45000, 3.5, '2/1/1999', '1/1/2001')
INSERT dbo.Employee VALUES(2, 'Kelly', 'Jeff', 85000, 2.4, '10/1/1983','9/1/1998')
INSERT dbo.Employee VALUES(3, 'Guelzow', 'Dave', 120000, 4.0, '7/1/1995', '6/1/2001')
INSERT dbo.Employee VALUES(3, 'Cliff', 'Melissa', 95000, 1.8, '2/1/1999', '9/1/1997')
INSERT dbo.Employee VALUES(4, 'Reagan', 'Frankie', 75000, 2.9, '4/1/1900', '4/1/2000')
INSERT dbo.Employee VALUES(4, 'Adams', 'Hank', 34000, 3.2, '9/1/1998', '9/1/1998')
改成这样也可以,关键是要弄明白datetime的下限日期,日期不能少于1900年,你这样写'1/1/97'是不会被识别的。
回答完毕哈!