powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Преобразованная дата
18 сообщений из 18, страница 1 из 1
Преобразованная дата
    #40031627
Raze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, может кто подсказать, как правильно написать чтобы дата отображалась в виде: 27.12.2020
Код: sql
1.
2.
3.
4.
5.
6.
select  convert(nvarchar, convert(date,g.TIMENACH_F,102), 112) +', '
from mktsreg g 
INNER JOIN kdk 
	ON g.n_kdk = kdk.n_kdk 
WHERE MKTs.unmkts = g.unmkts AND MKTS.UNMKT = MKT.UNMKT 
for xml path('')


При выполнении запроса, дата проставляется в таком виде: 20201227
...
Рейтинг: 0 / 0
Преобразованная дата
    #40031628
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Raze
При выполнении запроса, дата проставляется в таком виде: 20201227
Запутались вы, похоже.
Стиль 112 - это и есть 20201227
А 27.12.2020 - это стиль 102
Код: sql
1.
2.
3.
4.
5.
6.
7.
select  convert(nvarchar, g.TIMENACH_F, 112) +', '
from (select convert(date,'20201227') as TIMENACH_F ) g 
for xml path('')

select  convert(nvarchar, g.TIMENACH_F, 102) +', '
from (select convert(date,'20201227') as TIMENACH_F ) g 
for xml path('')
...
Рейтинг: 0 / 0
Преобразованная дата
    #40031629
Raze
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexeyvg, аа.. все, понял, спасибо большое!
...
Рейтинг: 0 / 0
Преобразованная дата
    #40031630
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg
Raze
При выполнении запроса, дата проставляется в таком виде: 20201227
Запутались вы, похоже.
Стиль 112 - это и есть 20201227
А 27.12.2020 - это стиль 102
Код: sql
1.
2.
3.
4.
5.
6.
7.
select  convert(nvarchar, g.TIMENACH_F, 112) +', '
from (select convert(date,'20201227') as TIMENACH_F ) g 
for xml path('')

select  convert(nvarchar, g.TIMENACH_F, 102) +', '
from (select convert(date,'20201227') as TIMENACH_F ) g 
for xml path('')

Не 102, а 104
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032041
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap
Не 102, а 104
коллеги
подскажите
нет ли в мсскл метода преобразования строки в дату как в оракле - с явным заданием маски
Код: plsql
1.
to_date('17/12/2020', 'dd/mm/rrrr')

а то я эти собачьи коды никак запомнить не могу
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032042
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032043
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Евгений
Типы возвращаемых данных
nvarchar или NULL

а мне бы DateTime
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032117
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

Нет такой функции. Зато литеральная запись в формате ISO конвертируется однозначно.
Код: sql
1.
select cast('2020-12-29 23:59:59' as datetime2) d;
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032121
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

в шарпах сделали
может, и тут когда-нить
Код: c#
1.
2.
            DateTime dt = DateTime.ParseExact("31.5.2021", "d.M.yyyy", System.Globalization.CultureInfo.InvariantCulture);
            MessageBox.Show(dt.ToString());

...
Рейтинг: 0 / 0
Преобразованная дата
    #40032123
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

Можно через трай парс

Код: sql
1.
2.
3.
select try_parse('13.12.2020 23:56:55' as datetime using 'ru-ru') d;
select try_parse('13.12.2020 23:56:55' as datetime using 'en-us') d;
select try_parse('13.12.2020 23:56:55' as datetime using 'en-gb') d;
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032134
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

да, спасибо
но всё равно не так наглядно, как хотелось бы

а функция IsDate вообще настроек не имеет :(
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032274
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx
iap
Не 102, а 104
коллеги
подскажите
нет ли в мсскл метода преобразования строки в дату как в оракле - с явным заданием маски
Код: plsql
1.
to_date('17/12/2020', 'dd/mm/rrrr')

а то я эти собачьи коды никак запомнить не могу


PARSE()
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032282
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
andreymxнет ли в мсскл метода преобразования строки в дату как в оракле - с явным заданием маски
Код: plsql
1.
to_date('17/12/2020', 'dd/mm/rrrr')


а то я эти собачьи коды никак запомнить не могу

PARSE()Тогда придётся помнить коды культур :-(
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032302
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvg,

похоже, эта штука умеет автоматически распознавать культуру в каких-то пределах:

Код: sql
1.
2.
3.
4.
select parse('12/31/2020' as date)
select parse('2020-12-31' as date)
select parse('2020.12.31' as date)
select parse('31.12.2020' as date using 'ru-ru')



Кодов-то два всего запомнить en-us, ru-ru для России.
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032353
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов,

Культуру всё равно придётся указывать явно, иначе можно получить ложноположительные срабатывания и, благодаря
Код: sql
1.
parse('08/03/2021' as date)

ненароком поздравить подругу третьего августа вместо восьмого марта.
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032365
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
похоже, эта штука умеет автоматически распознавать культуру в каких-то пределах:
всегда пытаюсь избавляться от "автоматических распознаваний культур"
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032374
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

в общем, то это верное решение. Необходимо явно указывать свои намерения, например

Код: sql
1.
2.
3.
select cast(1 as int) f1
-- вместо
select 1 f1
...
Рейтинг: 0 / 0
Преобразованная дата
    #40032375
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

да, настройка языка подключения может влиять на преобразование.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Преобразованная дата
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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