Su ejemplo no es válido de dos maneras:
- No está permitido tener un prefijo de espacio de nombres sin una declaración de espacio de nombres correspondiente.
- Su cierre las etiquetas no incluyen el
/
en todas partes...
Este es un truco feo, pero puedes probar esto:
DECLARE @Params XML
SET @Params = REPLACE('<filter>
<ns0:from>2016-09-19</ns0:from>
<ns0:to>2017-01-01</ns0:to>
</filter>','ns0:','');
SELECT @Params.value('(/*:filter/*:from)[1]', 'date') AS [from];
Si no conoce todos los prefijos de espacio de nombres de antemano, esto se volverá realmente complicado...