Funktion Immer die richtige Nummer der Woche des Jahres
Möchte ich eine Funktion erstellen, um die richtige Nummer der Woche im Jahr.
Ich schon gepostet hier zu finden, um eine "native" Lösung, aber scheinbar gibt es nicht.
Ich tryed zu erstellen funcrtion basierend auf dieser mysql Beispiel
Hier ist der code übersetzt, um postgresql:
CREATE OR REPLACE FUNCTION week_num_year(_date date)
RETURNS integer AS
$BODY$declare
_year integer;
begin
select date_part('year',_date) into _year;
return ceil((to_char(_date,'DDD')::integer+(to_char(('01-01-'||_year)::date,'D')::integer%7-7))/7);
end;$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
Aber es gibt falsche Ergebnis, kann mir jemand helfen ?
Meine config: PostgreSQL 9.2
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, eine ordnungsgemäße Woche zahlen verwenden:
Dadurch wird das Ergebnis
52
, das ist richtig, wenn man sich auf einen Kalender.Nun, wenn Sie wirklich wollen, zu definieren, Wochen-Nummern wie "Alle 7 Tage, beginnend mit dem ersten Tag des Jahres," das ist in Ordnung, obwohl es nicht mit der Woche zahlen jemand anderes verwendet und hat einige merkwürdige Macken:
Durch die Art und Weise, Parsen von Datums-strings und hacken Sie Sie mit string-Funktionen ist fast immer eine ganz schlechte Idee.
Was ist mit dem inbuild extrahieren-Funktion?
Können Sie abrufen, den Tag der Woche und auch der Woche, in der das Jahr durch ausgeführt: