Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Добрый день!
Имеем простой запрос:
SET LANGUAGE Russian;
SELECT @@LANGUAGE, fio, CONVERT(char(11), bd, 113) As [birthday], pser, pNmr
    FROM Pacient WITH(noLock);


И хитрый ответ:
русский	Иванов  Дмитрий Семёнович	15 Oct 1964	2589	526874



Почему день рождения выведен не по русски?
22 сен 18, 07:35    [21682553]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Tactical Nuclear Penguin
Member

Откуда: холодно тут
Сообщений: 2724
saszay
Почему день рождения выведен не по русски?


а должен?
22 сен 18, 09:08    [21682569]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
saszay
Добрый день!
Имеем простой запрос:
SET LANGUAGE Russian;
SELECT @@LANGUAGE, fio, CONVERT(char(11), bd, 113) As [birthday], pser, pNmr
    FROM Pacient WITH(noLock);



И хитрый ответ:
русский	Иванов  Дмитрий Семёнович	15 Oct 1964	2589	526874




Почему день рождения выведен не по русски?


а bd у вас не строковый?
22 сен 18, 09:21    [21682571]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Посетитель,

Нет, у него тип
date
22 сен 18, 20:06    [21682786]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
Tactical Nuclear Penguin
saszay
Почему день рождения выведен не по русски?


а должен?



я так понимаю, должно браться значение из sys.syslanguages

saszay,
а что вернет запрос
select shortmonths from sys.syslanguages where alias = 'russian'
22 сен 18, 22:20    [21682850]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Посетитель,

select shortmonths from sys.syslanguages where alias = 'russian'


янв,фев,мар,апр,май,июн,июл,авг,сен,окт,ноя,дек
22 сен 18, 22:59    [21682875]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
iap
Member

Откуда: Москва
Сообщений: 46952
saszay
Посетитель,

Нет, у него тип
date
Что вернёт
SELECT CONVERT(VARCHAR,CAST(GETDATE() AS DATE),113);
??
23 сен 18, 11:47    [21683030]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
iap,

24 сен 2018
24 сен 18, 05:40    [21683488]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2382
Блог
saszay,

Это всё в одном клиенте происходит?
24 сен 18, 07:49    [21683494]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Павел Воронцов,

Конечно...
24 сен 18, 08:04    [21683499]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
saszay
Павел Воронцов,

Конечно...


мне кажется, bd у вас совсем не date....
24 сен 18, 08:08    [21683504]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Посетитель,
Откуда такие мысли?
DECLARE @Pacient TABLE(
ID   int primary key identity (1, 1),
fio  varchar(128) NOT NULL,
bd   date NOT NULL,
pser smallint,
pNmr int);
24 сен 18, 08:13    [21683505]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
saszay
Посетитель,
Откуда такие мысли?
DECLARE @Pacient TABLE(
ID   int primary key identity (1, 1),
fio  varchar(128) NOT NULL,
bd   date NOT NULL,
pser smallint,
pNmr int);


ну это скрипт табличной переменной.
в запросе выше - постоянная таблица
24 сен 18, 08:16    [21683509]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Посетитель,

Я сменил таблицу на временную. Не помогло
24 сен 18, 08:18    [21683510]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Посетитель
Member

Откуда:
Сообщений: 1384
saszay
Посетитель,

Я сменил таблицу на временную. Не помогло


ну вы же видите, что дату сервер конвертирует корректно.
значит, это
1) какой то глюк сервера,
2) в проблемном случае вы пытаетесь конвертировать НЕ дату.
например, объявили табличную переменную, а селект у вас из постоянной таблицы.
Или смотрите таблицу в одной схеме, а работаете в другой схеме.

я ставлю на 2)

попробуйте, например, добавить в ваш проблемный запрос SQL_VARIANT_PROPERTY(bd,'BaseType')
24 сен 18, 08:47    [21683523]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Посетитель,

SELECT fio, bd As [birthday], CONVERT(varchar, bd, 113), SQL_VARIANT_PROPERTY(bd,'BaseType')
    FROM @Pacient
    WHERE ID = @pcID;


Иванов  Дмитрий Семёнович	1964-10-15	15 Oct 1964	date
24 сен 18, 08:53    [21683525]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Павел Воронцов
Member

Откуда: Новосибирск
Сообщений: 2382
Блог
saszay,

а select @@VERSION ? И если клиент один, то какой?
24 сен 18, 09:19    [21683540]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
только с этой таблицей такое или с любой другой тоже?
когда с табличной переменной пробовали,
все то же самое?
24 сен 18, 09:20    [21683541]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Павел Воронцов,

Microsoft SQL Server 2016 (SP2-CU2-GDR) (KB4458621) - 13.0.5201.2 (X64)   Aug 18 2018 07:38:15   Copyright (c) Microsoft Corporation  Standard Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 <X64> (Build 9600: ) (Hypervisor) 



Microsoft SQL Server Management Studio 14.0.17277.0
Microsoft Analysis Services Client Tools 14.0.1016.262
Компоненты доступа к данным (MDAC) 10.0.17134.1
Microsoft MSXML 3.0 6.0
Microsoft Internet Explorer 9.11.17134.0
Microsoft .NET Framework 4.0.30319.42000
Операционная система 6.3.17134
24 сен 18, 09:21    [21683543]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3143
saszay,

SELECT fio, bd As [birthday], CONVERT(varchar, bd, 113), SQL_VARIANT_PROPERTY(bd,'BaseType'), @@langid, @@language
FROM @Pacient
WHERE ID = @pcID;
?
24 сен 18, 09:24    [21683544]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Yasha123,

При смене базы проблема или усугублялась (пропал весь русский язык) или стала работать корректно.
Интересно: какие настройки базы на это влияют. У всех проверенных баз Язык по умолчанию - Русский?
24 сен 18, 09:28    [21683547]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Ennor Tiegael,

Иванов  Дмитрий Семёнович	1964-10-15	15 Oct 1964	date	21	русский
24 сен 18, 09:30    [21683548]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
можете сделать тестовую базу с одной только таблицей с датой,
где бы эта проблема присутствовала?
одной строки и одной поля в таблице достаточно.
базу забэкапить и сюда выложить.
что-то мне кажется, если ее на моем восстановить,
проблема уйдет.
24 сен 18, 09:38    [21683553]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
Massa52
Member

Откуда:
Сообщений: 373
saszay,
Такое впечатление - что год 1964 стремный(<1970). А можете, что нить посвежее > 2000 года показать?
24 сен 18, 09:43    [21683559]     Ответить | Цитировать Сообщить модератору
 Re: Некорретный CONVERT  [new]
saszay
Member

Откуда: Тольятти
Сообщений: 450
Massa52,

Год проверил - не в нём дело
24 сен 18, 09:46    [21683563]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить