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

Откуда:
Сообщений: 261
Здравствуйте.
Не могу создать фильтр. Необходимо задать с начала года до текущего момента
where cast([DRILLINGDATE] as date) between '01-jun-2017' and '20-feb-2017'

только дело в том что это не всегда первое января 2017 года, если сегодня - это 14 марта 2018 года, то начало года должно быть 01-jun-2018
Как мне придумать фильтр, чтобы год подставлялся в зависимости от второй даты в фильтре. Какой там год, такой и в начале года
14 мар 18, 11:42    [21254834]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
katish444,

у вас год с июня?

DATEADD(year,YEAR(GETDATE())-1900,0)
14 мар 18, 11:46    [21254852]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
assmsk
Member

Откуда:
Сообщений: 169
where year(cast([DRILLINGDATE] as date)) = year(getdate())
14 мар 18, 12:33    [21255065]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
только дело в том
Guest
katish444,

автор
between '01-jun-2017' and '20-feb-2017'

проблематичненько будет что-нибудь найти
автор
если сегодня - это 14 марта 2018 года, то начало года должно быть 01-jun-2018

Аналогично. С ИЮНЯ 2018 по МАРТ 2018 прошло не так много времени.
14 мар 18, 12:42    [21255094]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
только дело в том
katish444,

автор
between '01-jun-2017' and '20-feb-2017'

проблематичненько будет что-нибудь найти
автор
если сегодня - это 14 марта 2018 года, то начало года должно быть 01-jun-2018

Аналогично. С ИЮНЯ 2018 по МАРТ 2018 прошло не так много времени.


я описалась, простите jan хотела напечатать
14 мар 18, 13:16    [21255215]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
TaPaK
katish444,

у вас год с июня?

DATEADD(year,YEAR(GETDATE())-1900,0)


я описалась, простите January хотела напечатать
14 мар 18, 13:17    [21255219]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
assmsk
where year(cast([DRILLINGDATE] as date)) = year(getdate())

а как вторую часть фильра указать? У меня же between
where cast([DRILLINGDATE] as date) between '01-jan-2017' and '20-feb-2017'
14 мар 18, 13:19    [21255228]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
katish444
TaPaK
katish444,

у вас год с июня?

DATEADD(year,YEAR(GETDATE())-1900,0)


я описалась

ну бывает
14 мар 18, 13:21    [21255239]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
только дело в том,
хватит издеваться))))) опечатка случайная, суть-то не поменялась
14 мар 18, 13:22    [21255244]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
TaPaK,
where cast([senddate] as date) between DATEADD(year,YEAR(GETDATE())-1900,0) and '20-feb-2017'

это не работает
Я не верно написала?
14 мар 18, 13:24    [21255258]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
katish444
только дело в том,
хватит издеваться))))) опечатка случайная, суть-то не поменялась

это смотря как ударение в слове посавить :)


автор
where cast([senddate] as date) between DATEADD(year,YEAR(GETDATE())-1900,0) and '20-feb-2017'

ну естественно сейчас то 2018, вместо GETDATE() подставье вашу дату
14 мар 18, 13:26    [21255268]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
TaPaK,
она же у меня в формате '20-feb-2017', а когда я использую cast внутри getdate, подчеркивает красным...
14 мар 18, 13:31    [21255303]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
katish444
TaPaK,
она же у меня в формате '20-feb-2017', а когда я использую cast внутри getdate, подчеркивает красным...

описались серъёзно....
CAST('20-feb-2017' as date) какой ещё внутри getdate
14 мар 18, 13:33    [21255310]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
TaPaK
katish444
TaPaK,
она же у меня в формате '20-feb-2017', а когда я использую cast внутри getdate, подчеркивает красным...

описались серъёзно....
CAST('20-feb-2017' as date) какой ещё внутри getdate

вот

К сообщению приложен файл. Размер - 16Kb
14 мар 18, 13:36    [21255324]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
katish444,

и зачем вы так делаете?
14 мар 18, 13:41    [21255350]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
TaPaK
katish444,

и зачем вы так делаете?


потому что не знаю как надо
14 мар 18, 13:42    [21255352]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
katish444,

where cast([senddate] as date) between DATEADD(year,YEAR(CAST('20-feb-2017' as date))-1900,0) and '20-feb-2017'
14 мар 18, 13:43    [21255356]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
[/SRC][/quote]
DECLARE @D DATE='20170220';
SELECT ... FROM ...
WHERE CAST([senddate] AS DATE) BETWEEN STR(YEAR(@D)) AND @D;
14 мар 18, 13:54    [21255405]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
iap
Member

Откуда: Москва
Сообщений: 46954
DECLARE @D DATETIME='20170220';
SELECT ... FROM ...
WHERE [senddate]>=STR(YEAR(@D)) AND [senddate]<DATEADD(DAY,1,@D);
14 мар 18, 13:56    [21255414]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
спасибо всем большое
14 мар 18, 14:15    [21255487]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
TaPaK
katish444,

where cast([senddate] as date) between DATEADD(year,YEAR(CAST('20-feb-2017' as date))-1900,0) and '20-feb-2017'

подскажи, пожалуйста, почему у меня стал дублировать строку в таблице.
То есть когда просто даты, то выдает строку с цифрами, а когда использую твою строку, то выдает две одинаковые строки. Считает все правильно, цифры все верные
14 мар 18, 14:26    [21255546]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
katish444
TaPaK
katish444,

where cast([senddate] as date) between DATEADD(year,YEAR(CAST('20-feb-2017' as date))-1900,0) and '20-feb-2017'

подскажи, пожалуйста, почему у меня стал дублировать строку в таблице.
То есть когда просто даты, то выдает строку с цифрами, а когда использую твою строку, то выдает две одинаковые строки. Считает все правильно, цифры все верные

это вы со своими данными разбирайтесь, предикат не генерирует новых записей
14 мар 18, 14:34    [21255581]     Ответить | Цитировать Сообщить модератору
 Re: как отобрать год у даты?  [new]
katish444
Member

Откуда:
Сообщений: 261
TaPaK, поняла, спасибо. Буду разбираться дальше
15 мар 18, 06:12    [21257417]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить