我有一个如下表:
Create table EmpDetails
(
ID int primary key,
DOB datetime not null,
Name nvarchar(100) not null,
Salary float not null,
Email nvarchar(50) not null,
IsActive bit not null
)
Insert into EmpDetails VALUES (2134, '1985-09-19 03:37:21.757', 'Jack Sparrow', 75000,'abc@gmail.com', 1)
当我尝试使用以下查询将列转换为行时,出现错误并且查询失败。
select ID, Attrib, Value
from EmpDetails
cross apply
(
select 'DOB', DOB union all
select 'Name', Name union all
select 'Salary', Salary union all
select 'Email', Email union all
select 'IsActive', IsActive
)empd(Attrib, Value);
编辑:我也在下面尝试过,但得到了同样的错误
select ID, Attrib, Value
from EmpDetails
cross apply
(
values
('DOB', DOB),
('Name', Name),
('Salary', Salary),
('Email', Email),
('IsActive', IsActive)
) empd(Attrib, Value);
错误:
Conversion failed when converting date and/or time from character string.
当我尝试 CAST DOB 字段时,datetime
我仍然遇到同样的错误:
select 'DOB', CAST(DOB as datetime)
我怎样才能在这里进行?任何帮助表示赞赏。