Сообщение Re: MSSQL Парсинг XML и прербразование дат от 02.04.2023 11:48
Изменено 02.04.2023 11:51 bnk
Re: MSSQL Парсинг XML и прербразование дат
Здравствуйте, .alex, Вы писали:
A>Добрый день. Разбираю xml sql сервером. В xml есть список нодов с датам и значениями. Мне нужно выбрать ноду с максимальной датой.
A>Даты в русском/немецком формате!!!
ChatGPT же
Я теперь стал теперь в первую очередь ему вопросы задавать такие вместо гугла, он подобную хрень хорошо тащит, ну или по крайней мере идею решения дает, если не готовое решение
Код выше он выдал прямо по твоему вопросу.
A>Добрый день. Разбираю xml sql сервером. В xml есть список нодов с датам и значениями. Мне нужно выбрать ноду с максимальной датой.
A>Даты в русском/немецком формате!!!
ChatGPT же
Я теперь стал теперь в первую очередь ему вопросы задавать такие вместо гугла, он подобную хрень хорошо тащит, ну или по крайней мере идею решения дает, если не готовое решение
DECLARE @xml XML = N'<root>
<sub_root>
<node>
<val>1</val>
<date>31.07.2022</date>
</node>
<node>
<val>2</val>
<date>20.08.2022</date>
</node>
</sub_root>
</root>';
WITH cte AS (
SELECT
n.value('(val/text())[1]', 'int') AS val,
CONVERT(date, n.value('(date/text())[1]', 'varchar(10)'), 104) AS date
FROM @xml.nodes('/root/sub_root/node') AS t(n)
)
SELECT val, date
FROM cte
WHERE date = (SELECT MAX(date) FROM cte)Здесь мы используем переменную @xml, которая хранит ваш XML-документ.
Затем мы используем CTE для извлечения значений из XML-документа,
преобразуя дату из русского/немецкого формата (день.месяц.год) с использованием кода 104.
Наконец, мы выбираем ноду с максимальной датой из CTE
Код выше он выдал прямо по твоему вопросу.
Re: MSSQL Парсинг XML и прербразование дат
Здравствуйте, .alex, Вы писали:
A>Добрый день. Разбираю xml sql сервером. В xml есть список нодов с датам и значениями. Мне нужно выбрать ноду с максимальной датой.
A>Даты в русском/немецком формате!!!
ChatGPT же
Я теперь стал теперь в первую очередь ему вопросы задавать такие вместо гугла, он подобную хрень хорошо тащит, ну или по крайней мере идею решения дает, если не готовое решение
Код выше он выдал прямо по твоему вопросу.
Про "код 104" для преобразования даты из русского/немецкого я бы ни в жизнь не догадался.
A>Добрый день. Разбираю xml sql сервером. В xml есть список нодов с датам и значениями. Мне нужно выбрать ноду с максимальной датой.
A>Даты в русском/немецком формате!!!
ChatGPT же
Я теперь стал теперь в первую очередь ему вопросы задавать такие вместо гугла, он подобную хрень хорошо тащит, ну или по крайней мере идею решения дает, если не готовое решение
DECLARE @xml XML = N'<root>
<sub_root>
<node>
<val>1</val>
<date>31.07.2022</date>
</node>
<node>
<val>2</val>
<date>20.08.2022</date>
</node>
</sub_root>
</root>';
WITH cte AS (
SELECT
n.value('(val/text())[1]', 'int') AS val,
CONVERT(date, n.value('(date/text())[1]', 'varchar(10)'), 104) AS date
FROM @xml.nodes('/root/sub_root/node') AS t(n)
)
SELECT val, date
FROM cte
WHERE date = (SELECT MAX(date) FROM cte)Здесь мы используем переменную @xml, которая хранит ваш XML-документ.
Затем мы используем CTE для извлечения значений из XML-документа,
преобразуя дату из русского/немецкого формата (день.месяц.год) с использованием кода 104.
Наконец, мы выбираем ноду с максимальной датой из CTE
Код выше он выдал прямо по твоему вопросу.
Про "код 104" для преобразования даты из русского/немецкого я бы ни в жизнь не догадался.