Twój przykład jest nieprawidłowy z dwóch powodów:
- Nie wolno mieć prefiksu przestrzeni nazw bez odpowiedniej deklaracji przestrzeni nazw.
- Twoje zamknięcie tagi nie zawierają
/
wszędzie...
To brzydki hack, ale możesz spróbować tego:
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];
Jeśli nie znasz z góry wszystkich przedrostków przestrzeni nazw, będzie to naprawdę trudne...