Como el resultado devolverá todas las columnas en filas, creando una nueva columna derivada con todos los valores, debe asegurarse de que los tipos encajen.
Puede envolver todas sus columnas en CAST
SELECT
ColumnName,
value
FROM (SELECT
CAST(id AS NVARCHAR(MAX)) [ID],
CAST(firstname AS NVARCHAR(MAX)) [First Name],
CAST(lastname AS NVARCHAR(MAX)) [Last Name],
CAST(dob AS NVARCHAR(MAX)) [DOB],
CAST(sex AS NVARCHAR(MAX)) [Gender]
FROM client
WHERE id = '11') d
UNPIVOT
(
Value FOR
ColumnName IN ([ID], [First Name], [Last Name], [DOB], [Gender])
) unpiv;
El DOB
se convertirá a la configuración predeterminada de su máquina. Usando CONVERT
puede aplicar un formato de fecha/hora determinado.