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

Откуда:
Сообщений: 1
Добрый день!
Подскажите, пожалуйста, как можно из столбца таблицы с датой вычесть цифру 2000

Код примерно такой

SELECT DISTINCT
convert(varchar,(CONVERT(date,[CB].[_AccumRg14392]._Period,103)),103) AS Dates

,[CB].[_AccumRg14392]._Fld14393RRef AS Organization
,[CB].[_AccumRg14392]._Fld14395RRef AS TypeOfBudget
,[CB].[_AccumRg14392]._Fld14396RRef AS BudgetItem

FROM [CB].[_AccumRg14392]

Дату выводит в следующем формате
14/06/4018

Что бы получить нормальную дату нужно отнять от года цифру 2000

Заранее благодарен за помощь.
13 ноя 19, 13:03    [22015261]     Ответить | Цитировать Сообщить модератору
 Re: Вычесть цифру из даты (из года) в столбце с датами SQL таблицы  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36893
dateadd()
13 ноя 19, 13:06    [22015267]     Ответить | Цитировать Сообщить модератору
 Re: Вычесть цифру из даты (из года) в столбце с датами SQL таблицы  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 5226
Дмитрий1988,

select dateadd(yy,-2000,CONVERT(date,[CB].[_AccumRg14392]._Period))


кстати,
CONVERT(date,[CB].[_AccumRg14392]._Period,103)
красное лишнее

и проверьте, может _Period уже и так datetime, тогда незачем его в date конвертировать
13 ноя 19, 13:08    [22015268]     Ответить | Цитировать Сообщить модератору
 Re: Вычесть цифру из даты (из года) в столбце с датами SQL таблицы  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2323
Дмитрий1988,

Заставьте лучше своих 1Сников убрать смещение в 2000 в настройках базы.
13 ноя 19, 13:13    [22015276]     Ответить | Цитировать Сообщить модератору
 Re: Вычесть цифру из даты (из года) в столбце с датами SQL таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Дмитрий1988
как можно из столбца таблицы с датой вычесть цифру 2000
Вы считаете, что 2000 - это цифра?
Извините меня за буквоедство, конечно, но...
13 ноя 19, 13:44    [22015321]     Ответить | Цитировать Сообщить модератору
 Re: Вычесть цифру из даты (из года) в столбце с датами SQL таблицы  [new]
ShIgor
Member

Откуда: Нижний Новгород
Сообщений: 2323
iap,

это год. у меня еще хлеще, где-то разрабы озаботились чтоб убрать смещение, а где-то нет.. а слить данные надо..
приходится все подряд кастовать в строку с двухзначным годом и обратно в дату, чтоб не проверять и не думать.
13 ноя 19, 13:49    [22015331]     Ответить | Цитировать Сообщить модератору
 Re: Вычесть цифру из даты (из года) в столбце с датами SQL таблицы  [new]
L_argo
Member

Откуда:
Сообщений: 1183
О ! Классика 1С-а. 4000 годы.
13 ноя 19, 14:08    [22015370]     Ответить | Цитировать Сообщить модератору
 Re: Вычесть цифру из даты (из года) в столбце с датами SQL таблицы  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
ShIgor
iap,

это год. у меня еще хлеще, где-то разрабы озаботились чтоб убрать смещение, а где-то нет.. а слить данные надо..
приходится все подряд кастовать в строку с двухзначным годом и обратно в дату, чтоб не проверять и не думать.
Я не об этом
13 ноя 19, 15:15    [22015493]     Ответить | Цитировать Сообщить модератору
 Re: Вычесть цифру из даты (из года) в столбце с датами SQL таблицы  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
ShIgor
iap,

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

он вам про русский язык и разницу между словами "число" и "цифра".
2000 это одно число, но 4 цифры
13 ноя 19, 15:22    [22015504]     Ответить | Цитировать Сообщить модератору
 Re: Вычесть цифру из даты (из года) в столбце с датами SQL таблицы  [new]
L_argo
Member

Откуда:
Сообщений: 1183
и проверьте, может _Period уже и так datetime, тогда незачем его в date конвертировать
Конечно дататайм. Незачем и проверять.

dateadd(year, -2000, _AccumRg14392]._Period)

Но так можно не везде, т.к. есть в 1С поля, где типа пусто и это 01-01-2001г
Приходится сначала ставить CASE
13 ноя 19, 16:04    [22015569]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить