json转换为decimal,datetime类型失败

create table test_json(a int, b varchar(65535));
insert into test_json values(1, '{"a":{"a":1},"b":1}');
insert into test_json values(1, '{"a":{"a":2},"b":2,"c":"2024-05-06"}');
select * from test_json;

select cast(b as json) from test_json;
select cast(cast(b as json) -> 'b' as double) from test_json;

select cast(cast(b as json) -> 'b' as numeric) from test_json;
select cast(cast(b as json) -> 'c' as datetime) from test_json;

json类型转为double是成功的, 但是转为numdric和datetime都是失败的.
json类型提取出来的数据是可以转成datetime的, 能不能按照varchar的方式实现, varchar不是可以转成这些类型的吗