Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Vlad__i__mir Member Откуда: Сообщений: 460 |
Здравствуйте! Подскажите как подсчитать количество прошедших дней со дня начала года? Проблема в получение значения даты начала текущего года. Как её определить? После того как получим дату начала текущего года предполагаю, что можно будет сделать так: DATADIFF (day, GETDATE(), Дата_начала_года) Поправьте пожалуйста моё предположение если оно не верно. Не нужно-ли использовать SELECT при запросе текущей даты? |
4 янв 19, 22:07 [21778574] Ответить | Цитировать Сообщить модератору |
londinium Member Откуда: Киев Сообщений: 1195 |
Vlad__i__mir,
Вот так: https://www.sql.ru/faq/faq_topic.aspx?fid=998 USE MASTER GO DECLARE @InCurrentDate DATE; DECLARE @InNewYearDate DATE; SELECT @InCurrentDate=GETDATE(); SELECT @InNewYearDate=CAST(DATENAME(YEAR,@InCurrentDate)AS DATE); SELECT @inCurrentDate AS CurrentDate,@InNewYearDate AS NewYearDate, DATEDIFF(DD,@InNewYearDate,@InCurrentDate)AS DateDifff; |
||
4 янв 19, 22:19 [21778578] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9683 |
select datepart(dy, getdate()); |
||
4 янв 19, 22:31 [21778585] Ответить | Цитировать Сообщить модератору |
Vlad__i__mir Member Откуда: Сообщений: 460 |
londinium, спасибо! А если у меня в таблице несколько разных годов и год с датой я тоже указываю в соседнем столбце, можно ли прописать функцию, которая бы считала количество дней для указанного года и даты? Или это придётся делать через создание дополнительного представления? |
4 янв 19, 23:01 [21778592] Ответить | Цитировать Сообщить модератору |
londinium Member Откуда: Киев Сообщений: 1195 |
--ваша таблица WITH TAB AS ( SELECT 1 AS ID,CAST(GETDATE() AS DATE)AS DAteColumn UNION ALL SELECT 2 AS ID,'20170831'AS DateColumn UNION ALL SELECT 3 AS ID,'20050502'AS DateColumn UNION ALL SELECT 4 AS ID,'20121117'AS DateColumn ) SELECT T.ID,T.DateColumn, CAST(DATENAME(YEAR,T.DateColumn)AS DATE)AS FirstYearDate, DATEDIFF(DD,CAST(DATENAME(YEAR,T.DateColumn)AS DATE),T.DateColumn)AS DaysDifference FROM TAB T; |
||
4 янв 19, 23:19 [21778599] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47061 |
DATEPART(DayOfYear, <ВашаДата(любая,вТомЧислеПолеТаблицы)>) |
||
5 янв 19, 13:19 [21778708] Ответить | Цитировать Сообщить модератору |
Kopelly Member Откуда: Красноярск Сообщений: 290 |
Если так?Datefromparts(Year,1,1) |
5 янв 19, 13:43 [21778720] Ответить | Цитировать Сообщить модератору |
Vlad__i__mir Member Откуда: Сообщений: 460 |
invm, Спасибо! Получилось |
5 янв 19, 18:22 [21778836] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |