2

私は以下のようなテーブルを持っています:

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.

DOB フィールドを CAST しようとすると、datetime同じエラーが発生します。

select 'DOB', CAST(DOB as datetime)

どうすればここに進むことができますか? どんな助けでも大歓迎です。

4

1 に答える 1