none
sql convert datum in woche RRS feed

  • Frage

  • Guten Morgen zusammen,

    ich möchte die Daten eine resultierende Tabelle (LieferTermin) in eine andere tabelle (Lieferwoche) conventieren.

    Ich habe im Netz die funcktion 

    Datepart und dbo.fn_ISOweek(Datum) gelesen und probiert aber es fincktioniert nicht. 

    Anbei den code beispiel und die Fehlermedung

    Select Tabelle1.ID,
      (Select Top 1 Min(Tabelle2.Liefertermin)
      From Tabelle2
      Where Tabelle2.ID =
        Tabelle1.ID) As Liefertermin
    	dbo.fn_ISOweek([Liefertermin]) As [Lieferwoche] -- fehler :Die dbo-Spalte oder die benutzerdefinierte Funktion bzw. das benutzerdefinierte Aggregat 'dbo.fn_ISOweek' wurde nicht gefunden, oder der Name ist mehrdeutig.
    	DatePart(Liefertermin, GetDate()) As [Lieferwoche] --'Liefertermin' wird nicht als Option für datepart erkannt.
    	From Tabelle1 
    Where Tabelle1.Mandant =1
    Hat jemand eine Idee? Danke im Vorraus

    Freitag, 9. September 2016 09:17

Antworten

Alle Antworten

  • Hallo,

    hast du dir überhaupt eine Funktion mit dem Namen fn_ISOweek im Schema dbo gebaut? Es handel sich nicht um eine Standardfunktion des SQL Server.

    Bei Select Datepart(Week, Getdate()) musst du den Datumsteil angeben der aus dem aktuellen Datum selectiert werden soll. Du kannst da nur Angaben wie Week, Day und der gleichen machen.

    https://msdn.microsoft.com/de-de/library/ms174420.aspx


    Benjamin Hoch
    MCSE: Data Platform
    MCSA: SQL Server 2012/2014
    MCSA: Windows Server 2012
    Blog


    Freitag, 9. September 2016 09:30
  • Hallo,

    ich habe nicht die Funktion fn_ISOweek im Schema, ich dachte es wäre eine Standardfuncktion des SQL Server.

    Wenn ich die Definition von Select Datepart() lese, die Funktion kann mir nicht viel helfen.

    Ich hole die Liefertermin aus einer Tabelle. und möchte jetzt jede Zeile von dieser Liefertermin als Lieferwoche convertieren.

    Bitte wie kann ich die Abfrage bearbeiten?

    Danke im voraus

    Freitag, 9. September 2016 09:47
  • Schau Dir erst mal die Option ISO_WEEK von Datepart an.

    Select Datepart(ISO_WEEK, Getdate()) ;
    Dann erklär doch noch mal, was Du genau machen willst.


    Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu

    Freitag, 9. September 2016 10:02
  • Hallo,

    Die Ergebnisse von Spalte Liefertermin in Lieferwoche convertieren

    Select Tabelle1.ID,
      (Select Top 1 Min(Tabelle2.Liefertermin)
      From Tabelle2
      Where Tabelle2.ID =
        Tabelle1.ID) As Liefertermin
    	dbo.fn_ISOweek([Liefertermin]) As [Lieferwoche] -- fehler :Die dbo-Spalte oder die benutzerdefinierte Funktion bzw. das benutzerdefinierte Aggregat 'dbo.fn_ISOweek' wurde nicht gefunden, oder der Name ist mehrdeutig.
    	DatePart(Liefertermin, GetDate()) As [Lieferwoche] --'Liefertermin' wird nicht als Option für datepart erkannt.
    	From Tabelle1 
    Where Tabelle1.Mandant =1

    Danke

    Freitag, 9. September 2016 10:05
  • Hi,

    was passt denn an:

    SELECT DATEPART( ISO_WEEK, <Datum> )

    nicht? In deinem Fall also:

    SELECT DATEPART( ISO_WEEK, Liefertermin )


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Freitag, 9. September 2016 10:11
    Moderator
  • Hallo,

    Es funktioniert, aber ein paar werte liefert 0 zurück.

    Danke

    Freitag, 9. September 2016 10:26
  • Hi,

    und welche Datumswerte stecken dahinter, wenn der Aufruf 0 zurückgibt?


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Freitag, 9. September 2016 10:38
    Moderator
  • Was hättest Du für das dazugehörige Lieferdatum als Woche erwartet?

    Poste bitte mal ein paar Daten.


    Einen schönen Tag noch, Christoph -- Data Platform MVP - http://www.insidesql.org/blogs/cmu

    Freitag, 9. September 2016 10:39