Datename sql
Автор Ксения Захарова задал вопрос в разделе Другие языки и технологии
Помогите задать запрос в sql что-то у меня не получается? и получил лучший ответ
Ответ от Генералиссимус Армии Алкашей[гуру]
Ну вот так можно сделать "в лоб" select last_name , start_date , CASE WHEN DATENAME(DW, DATEADD(day, 0, DATEADD(month, 6, start_date))) = 'Friday' then DATEADD(day, 0, DATEADD(month, 6, start_date)) WHEN DATENAME(DW, DATEADD(day, 1, DATEADD(month, 6, start_date))) = 'Friday' then DATEADD(day, 1, DATEADD(month, 6, start_date)) WHEN DATENAME(DW, DATEADD(day, 2, DATEADD(month, 6, start_date))) = 'Friday' then DATEADD(day, 2, DATEADD(month, 6, start_date)) WHEN DATENAME(DW, DATEADD(day, 3, DATEADD(month, 6, start_date))) = 'Friday' then DATEADD(day, 3, DATEADD(month, 6, start_date)) WHEN DATENAME(DW, DATEADD(day, 4, DATEADD(month, 6, start_date))) = 'Friday' then DATEADD(day, 4, DATEADD(month, 6, start_date)) WHEN DATENAME(DW, DATEADD(day, 5, DATEADD(month, 6, start_date))) = 'Friday' then DATEADD(day, 5, DATEADD(month, 6, start_date)) WHEN DATENAME(DW, DATEADD(day, 6, DATEADD(month, 6, start_date))) = 'Friday' then DATEADD(day, 6, DATEADD(month, 6, start_date)) ELSE null end AS next_salary_revision from s_emp Можно и проще, приду с обеда, отпишу, если оч. надо пы сы ну а с форматом вывода - смотреть надо, convert(char, дата, формат)
select last_name, start_date, ADD_MONTHS(Start_date, 6) + (8 - DATEPART(dw, ADD_MONTHS(Start_date, 6)) from s_emp; Где-то так. Описание функции DATEPART можно найти <a rel="nofollow" href="http://technet.microsoft.com/ru-ru/library/ms174420.aspx"