Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 где прячется collate  [new]
MyNiGoo
Member

Откуда:
Сообщений: 233
один и тот же сервер, одно и то же подключение
+
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4042.0 (X64)
Mar 26 2015 21:18:04
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) (Hypervisor)

use cg
select cast(datediff(day, dateadd(month,-1*12,'2016-04-05'  ), '2016-04-05') as decimal(5,0))

возвращает 366

use dwh_cg
select cast(datediff(day, dateadd(month,-1*12,'2016-04-05'  ), '2016-04-05') as decimal(5,0))

возвращает 337

collation в обеих базах указан Cyrillic_General_CI_AS
5 апр 16, 16:21    [19019727]     Ответить | Цитировать Сообщить модератору
 Re: где прячется collate  [new]
MyNiGoo
Member

Откуда:
Сообщений: 233
подскажите, пожалуйста, почему так? :-)
5 апр 16, 16:22    [19019729]     Ответить | Цитировать Сообщить модератору
 Re: где прячется collate  [new]
Glory
Member

Откуда:
Сообщений: 104751
а причем тут collation ?
5 апр 16, 16:22    [19019733]     Ответить | Цитировать Сообщить модератору
 Re: где прячется collate  [new]
Glory
Member

Откуда:
Сообщений: 104751
set dateformat ymd
go
select cast(datediff(day, dateadd(month,-1*12,'2016-04-05'  ), '2016-04-05') as decimal(5,0))
go
set dateformat ydm
go
select cast(datediff(day, dateadd(month,-1*12,'2016-04-05'  ), '2016-04-05') as decimal(5,0))
go
5 апр 16, 16:24    [19019739]     Ответить | Цитировать Сообщить модератору
 Re: где прячется collate  [new]
правильный проходящий.
Guest
MyNiGoo
один и тот же сервер, одно и то же подключение

collation в обеих базах указан Cyrillic_General_CI_AS
А при чем тут он?

Выполните в обоих базах:
select cast(datediff(day, dateadd(month,-1*12,'20160405'  ), '20160405') as decimal(5,0))
5 апр 16, 16:25    [19019746]     Ответить | Цитировать Сообщить модератору
 Re: где прячется collate  [new]
Glory
Member

Откуда:
Сообщений: 104751
Для того, чтобы работало НЕявное конвертирование, надо правильно константы формировать
set dateformat ymd
go
select cast(datediff(day, dateadd(month,-1*12,'20160405'  ), '20160405') as decimal(5,0))
go
set dateformat ydm
go
select cast(datediff(day, dateadd(month,-1*12,'20160405'  ), '20160405') as decimal(5,0))
go


или уж тогда использовать Явное конвертирование
5 апр 16, 16:26    [19019748]     Ответить | Цитировать Сообщить модератору
 Re: где прячется collate  [new]
MyNiGoo
Member

Откуда:
Сообщений: 233
Спасибо!
5 апр 16, 16:40    [19019816]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить