2016-06-22 6 views
-1

Ich habe eine dynamische Datentabelle, die eine Datumsspalte enthält.So stellen Sie die letzten 7 Tage dar, wenn Daten von SQL Server

Wie kann ich die letzten 7 Tage filtern und meine Ergebnisse unter WW & Jahr anzeigen? Wenn ich das nächste Datum habe: 2016-06-22 09:00:43.307, hoffe ich, es so zu sehen: 2016 WW26.

ist meine Datentabelle (ein Teil davon):

complete_date   operation_code step_in_quantity 
--------------------------------------------------------- 
2016-05-03 06:57:18.667 7461   130 
2016-05-03 03:35:16.813 7460   166 
2016-05-03 07:39:23.010 7461   162 
2016-05-04 03:43:44.773 7462   159 
2016-05-03 10:27:10.480 7460   160 
2016-05-04 08:41:45.693 7461   154 
2016-05-05 00:09:48.733 7462   148 
2016-05-03 05:09:49.367 7460   21 
2016-05-05 01:09:20.667 7461   21 

Zusätzlich wie sehen wir Daten, die aus dem Vorjahr oder Monat sein sollte? Z.B. 3.1.16 -> die letzten 7 Tage werden ab Dezember 2015 sein.

+0

Können Sie mehr erklären, wie tat Sie bekommen das 2016 WW26? – Whencesoever

+0

Was bedeutet WW? – Brad

+0

Arbeitswoche jetzt wir bei WW26 2016 Jahr – Avi22

Antwort

0

Ihre Frage ist ein wenig unklar. Versuchen Sie dies und lassen Sie mich wissen, ob das, was Sie suchen:

Select 'WW' + Convert(Char(2), DatePart(WK, '2016-06-22 09:00:43.307')) WeekNum, 
     complete_date, operation_code, step_in_quantity 
    From TableA 
    Where DateDiff(d, complete_date, getdate()) < 8 
+0

HI & danke Wo DateDiff (d, complete_date, getdate()) <8 Ist genau das, was ich für meine letzten 7 Tage Filter suche. – Avi22

+0

Ich verstehe nicht, wie Sie die Datumsdaten in WW konvertiert haben. Sie fügen es zur Auswahl Zeile können wir es tun? sollte nicht nach WO sein? – Avi22

+0

Wenn Sie datepart in der select-Klausel verwenden, erhalten Sie die Woche des Jahres, und ich denke, dass Sie danach gesucht haben. In der WHERE-Klausel wird nur nach den letzten sieben Tagen gesucht und nicht, dass es sich um Woche 26 handelt. Sie müssen darauf achten, dass der Datumsparameter das Wochenenddatum ist. Sonst müssen Sie andere Datumsfunktionen verwenden, um ein passendes Datum zu nehmen und es mit einer Woche zu enden, die endet ... –

0

Sie können auch versuchen it..I denke, es ist Ihr Wunsch Ergebnis ist ..

Select 'WW' + cast(datepart(month, DATEADD(d,7,complete_date)) as varchar(2)) + ' ' +cast(datepart(year,complete_date) as varchar(4)) result, 
     complete_date, operation_code, step_in_quantity 
    From Your_table 
    ----Where DateDiff(d, complete_date, getdate()) < 8 
+0

was das "d" bedeutet? + Ich habe es versucht, aber ich geting die nächsten Ergebnisse unter den Ergebnissen: WWJu2016 ---> Ich möchte WW05 2016 – Avi22

+0

@ Avi22: Hier ['d'] (http://www.w3schools.com/sql/func_dateadd.asp) bedeutet 'Tag' – Arulkumar

+0

' 'WW' + Cast (Datumsteil (Monat, DATEADD (d, 7, complete_date)) als 'varchar (2)) + Besetzung (Datumsteil (Jahr, vollständiges_Datum) als varchar (4)) result' –

Verwandte Themen