2014-02-14 1 views
-2

Я спотыкаясь SQL ... если вы можете помочь с 5 и 6Найти Дата начала/Дата окончания недели этого года/LAST

Бизнес нуждающегося

  1. У меня есть MyDate
  2. Я хочу SQL, чтобы дать мне номер недели для MyDate
  3. Я хочу SQL вернуть неделю дату начала этого года для MyDate
  4. Я хочу, чтобы SQL возвращала дату окончания текущего года для myDate
  5. (Нужна помощь) Я хочу, чтобы SQL возвращала начальную дату недели LAST YEAR для myDate
  6. (Нужна помощь) Я хочу, чтобы SQL возвращала дату окончания недели ПОСЛЕДНИЙ ГОД для MyDate

Комментариев к данным

  1. Дата условие
  2. Дата падает в 19 неделе 2014
  3. воскресенье недели 19 2014
  4. Суббота недели 19 2014
  5. воскресенье недели 19 2013 (нужна помощь в получении этой даты с SQL)
  6. Суббота недели 19 2013 (нужна помощь в получении этой даты с SQL)

Примеры данных

  1. 5/6/2014
  2. 5/4/2014
  3. 5/10/2014
  4. 5/5/2013
  5. 5/11/2013

SQL Queseries

  1. NA
  2. SELECT datepart (неделя, '05/06/2014 ')
  3. SELECT CONVERT (varchar (50), (DATEADD (dd, @@ DATEFIRST - DATEPART (dw, '05/06/2014') - 6, '05/06/2014 ')), 101)
  4. SELECT CONVERT (varchar (50), (DATEADD (dd, @@ DATEFIRST - DATEPART (dw, '05/06/2014'), '05/06/2014 ')), 101)
  5. Человек ... Я м ударяя SQL блок здесь
  6. Опять ... ударяя SQL блок здесь
+0

какая версия сервера Sql вы используете? – gh9

+0

'SELECT extract (неделя FROM now());' Хотя я действительно не понимаю, что вы хотите, это может помочь – Alexander

+2

Этот вопрос не соответствует теме, потому что неясно, что вы знаете – Kermit

ответ

0

Это то, что вам нужно ??

SELECT CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATEADD(year, -1, '05/06/2014')) - 6, DATEADD(year, -1, '05/06/2014'))), 101) 
SELECT CONVERT(varchar(50), (DATEADD(dd, @@DATEFIRST - DATEPART(dw, DATEADD(year, -1, '05/06/2014')), DATEADD(year, -1, '05/06/2014'))), 101) 

Кроме того, я бы использовал некоторые переменные, если это ваш случай.

declare @date Datetime = '05/06/2014' 
declare @datePreviousYear Datetime = DATEADD(year, -1, @date) 
declare @currentYeardateCalculated int = @@DATEFIRST - DATEPART(dw, @date) 
declare @lastYearDateCalculated int = @@DATEFIRST - DATEPART(dw, @datePreviousYear) 

--1 
SELECT @date 
--2 
SELECT datepart(week,@date) 
--3 
SELECT CONVERT(varchar(50), (DATEADD(dd, @currentYeardateCalculated - 6, @date)), 101) 
--4 
SELECT CONVERT(varchar(50), (DATEADD(dd, @currentYeardateCalculated, @date)), 101) 

--5 
SELECT CONVERT(varchar(50), (DATEADD(dd, @lastYearDateCalculated - 6,@datePreviousYear)), 101) 
--6 
SELECT CONVERT(varchar(50), (DATEADD(dd, @lastYearDateCalculated , @datePreviousYear)), 101) 

 Смежные вопросы

  • Нет связанных вопросов^_^