Hacele una conversión DATE( CAST(
valor as DATETIME)):
Cita: SELECT n_envio, guia_cliente,
DATE(CAST((CASE WHEN recepcion_conforme =1 THEN fecha_visita1
WHEN recepcion_conforme2=1 THEN fecha_visita2
WHEN recepcion_conforme3=1 THEN fecha_visita3
ELSE ' '
END) AS DATETIME)) AS fecha
FROM Orden_envio;
En esencia va a funcionar, erpo puede darte problemas con en ELSE. por eso el ELSE tiene que devolver un string distinto.
Cita: SELECT n_envio, guia_cliente,
DATE(CAST((CASE WHEN recepcion_conforme =1 THEN fecha_visita1
WHEN recepcion_conforme2=1 THEN fecha_visita2
WHEN recepcion_conforme3=1 THEN fecha_visita3
ELSE '0000-00-00 00:00:00'
END) AS DATETIME)) AS fecha
FROM Orden_envio;