powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перевод даты в VARCHAR
12 сообщений из 12, страница 1 из 1
Перевод даты в VARCHAR
    #40092092
Begimot441
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дорогие друзья, прошу помочь!

Вот уж не думал, что эта операция станет проблемной, но, тем не менее...
Есть у меня простая подзадача перевести дату (которую возвращает GETDATE()) типа 20.08.2021 06:21:23 в VARCHAR. Без изменения формата, естественно.
Искал я искал, и сделал вот так (только не смейтесь сильно):
Код: sql
1.
convert(VARCHAR, (GETDATE()),104) + ' ' + convert(VARCHAR, (GETDATE()),24)



Подскажите, пож-та, как можно поэлегантнее это сделать?
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40092093
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begimot441,

Поэлегантнее в плане кода? Можно FORMAT() использовать, если версия позволяет, но он сильно медленнее.

Либо преобразуйте на клиенте, либо оставляйте как есть.
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40092094
Begimot441
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ennor Tiegael,

Медленнее не хочу.
Получается, оставляю так...
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40092217
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begimot441
Дорогие друзья, прошу помочь!

Вот уж не думал, что эта операция станет проблемной, но, тем не менее...
Есть у меня простая подзадача перевести дату (которую возвращает GETDATE()) типа 20.08.2021 06:21:23 в VARCHAR. Без изменения формата, естественно.
Искал я искал, и сделал вот так (только не смейтесь сильно):
Код: sql
1.
convert(VARCHAR, (GETDATE()),104) + ' ' + convert(VARCHAR, (GETDATE()),24)



Подскажите, пож-та, как можно поэлегантнее это сделать?


как ведет себя cast?
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40092468
Begimot441
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин,

Вы знаете, а я не нашел, как применить в данном случае этот оператор без такого неэлегантного "склеивания". Буду рад, если поможете мне
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40092923
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Begimot441,

Это формат какого языка?

20.08.2021 06:21:23

Код: sql
1.
2.
3.
SET LANGUAGE ...язык...;  

SELECT CONVERT(CHAR(19), GETDATE())



Я обычно фигачу 121

Код: sql
1.
SELECT CONVERT(CHAR(19), GETDATE(), 121)



2021-08-24 14:41:14
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40092988
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin,

авторЭто формат какого языка?

Германский, емнип.
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40092994
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
a_voronin
Код: sql
1.
2.
3.
SET LANGUAGE ...язык...;  

SELECT CONVERT(CHAR(19), GETDATE())

Вот только во вьюхах не получится SET LANGUAGE использовать. В функциях, думаю, тоже.

ТС, такие вещи лучше делать на клиенте.
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40093013
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению, получить именно то, что нужно ТС одним конвертом нельзя, какой бы язык не указали.
ТС нашел решение. Если плюсы для него не очень элегантны, то может быть concat будет элегантней:

Код: sql
1.
concat(convert(VARCHAR, (GETDATE()),104), ' ', convert(VARCHAR, (GETDATE()),8));


Кстати, 8, 108 и 24 - синонимы.

Что касается клиента. Может ТС нужно просто вывести данные в текстовый файл?
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40093023
Oleg_SQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Begimot441,

Если это не участвует в массовом и частом преобразовании, то можно все же так:

Код: sql
1.
2.
3.
4.
5.
6.
-- как хранить параметр не суть, например, так:
EXEC sp_set_session_context 'dateformat', 'dd.MM.yyyy H:mm:ss'; 
....

DECLARE @frmt NVARCHAR(50) = CAST(SESSION_CONTEXT(N'dateformat') AS NVARCHAR(50))
SELECT FORMAT(GETDATE(), @frmt)



В случае, когда формат задан во многих местах кода, и затем его нужно поменять - будет проще.
Т.е. лучше вынести в настройку.
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40093064
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wlr-l
Что касается клиента. Может ТС нужно просто вывести данные в текстовый файл?
Тогда SSIS.
...
Рейтинг: 0 / 0
Перевод даты в VARCHAR
    #40093078
Wlr-l
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ennor Tiegael
Wlr-l
Что касается клиента. Может ТС нужно просто вывести данные в текстовый файл?
Тогда SSIS.


Слишком категорично.

1. INSERT INTO OPENROWSET ...

2. bcp

3. sqlcmd

4. PowerShell

5. SSIS

6. Если однократно, то выполняем запрос в SSMS. В окне Result щелкаем правой кнопкой, выбираем 'Save Results As ...", указываем нужный тип файла, нажимаем кнопку "Сохранить" и у нас есть текстовый файл.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Перевод даты в VARCHAR
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]