Also die Lösung für die ursprüngliche Frage ist einfach zu schreiben: SELECT * FROM table1 WHERE decimaldate ( DECIMALCOLUMN) = @ date Mit solch einer verschrobenen Art, das Datum in der Datenbank zu kodieren, sollte sich die immer verfügbare Funktion als unschätzbar erweisen. Mögliche Duplikate: Konvertieren Sie DB2 SQL Decimal in DATE Ich habe eine Datenbank db2 und ich möchte ein Dezimal in ein Datum während der WHERE-Klausel in einer SELECT-Anweisung konvertieren. Das Dezimaldatum kann je nach Monat 12 oder 13 Zeichen lang sein. 12 Zeichen: 1, 241. SQL: Datum aus Jahr, Monat, Tag - IT-Dienstleistungen Holger Kraft. 999, 00 sollte werden: 1999/1/24 13 Zeichen: 12, 241. 999, 00 sollte werden: 1999/12/24 Der Spaltenname lautet DECIMALCOLUMN: Select * from table1 WHERE cast ( replace ( convert, DECIMALCOLUMN, date)) = @ date
Die einzelnen Wochen werden mit dem Jahr verknüpft, in dem Donnerstag auftritt. Beispielsweise beginnt die Woche 1 im Jahr 2004 (2004W01) am 29. Dezember 2003 (Montag) und endet am 4. Januar 2004 (Sonntag). Europäische Länder und Regionen verwenden üblicherweise diese Art der Nummerierung. Nichteuropäische Länder und Regionen verwenden diese üblicherweise nicht. Hinweis: Die höchste Wochennummer in einem Jahr kann 52 oder 53 sein. Wir basteln uns ein Datum. Das Nummerierungssystem anderer Länder oder Regionen entspricht möglicherweise nicht dem ISO-Standard. Diese Tabelle stellt sechs Möglichkeiten dar: Erster Tag der Woche Erste Woche im Jahr enthält Doppelt zugewiesene Wochen Verwendet von/in Sonntag 1\. Januar Erster Samstag 1–7 Tage im Jahr Ja USA Montag 1\. Januar Erster Sonntag 1–7 Tage im Jahr Die meisten Länder Europas und das Vereinigte Königreich 4\. Januar Erster Donnerstag 4–7 Tage im Jahr Nein ISO 8601, Norwegen und Schweden 7\. Januar, Erster Montag 7 Tage im Jahr Wednesday 1\. Januar Erster Dienstag 1–7 Tage im Jahr Samstag 1\.
Damit der Wochentag stimmt sollte @@DATEFIRST = 1 sein, was bei deutscher Ländereinstellung gegeben ist. Gruss Elmar Hallo Thomas, Post by Thomas Nickel Hallo Elmar und Peter, Post by Elmar Boye Aber lassen wir uns das mal von Thomas erklären. Aus historischen Gründen (ich ärgere mich ständig darüber) erfassen Naja denn ist das klar. Das Ärgern zwar nicht, aber warum ändert ihrs nicht einmal? Post by Thomas Nickel StundenID / Mitarbeiter /... / Jahr / ISO-Kalenderwoche / Montag / Dienstag / Mittwoch / Donnerstag / Freitag Aufgabe ist nun, die Summe der Stunden je Mitarbeiter je Kalenderjahr darzustellen. Sql monat und jahr aus datum die. Eine Funktion ginge zwar auch, leider aber eben nicht so einfach wie Peter das angedeutet hat, und in Verbindung mit einer Teil- Auswahl wirds richtig kniffelig und plustert eine Funktion kräftig auf. Ich verwende für so etwas immer eine Kalendertabelle - unten dran mal ein Beispiel für Deine Bedürfnisse, wobei man dort auch noch anderes unterbringen kann. Post by Thomas Nickel Problem ist dabei, dass z.
Der 1. Januar eines Jahres definiert die Anfangszahl für week datepart. Beispiel: DATEPART ( wk, 'Jan 1, xxx x') = 1 Hierbei steht xxxx für ein beliebiges Jahr. In dieser Tabelle wird für jedes "SET DATEFIRST"-Argument der Rückgabewert der datepart -Argumente week und weekday für '2007-04-21' aufgelistet. Sql monat und jahr aus datum den. Der 1. Januar 2007 ist ein Montag. Der 21. April 2007 ist ein Sonntag. Für Englisch (USA) dient SET DATEFIRST 7 -- ( Sunday) als Standardeinstellung. Nachdem Sie DATEFIRST festgelegt haben, verwenden Sie diese empfohlene SQL-Anweisung für die datepart-Tabellenwerte: SELECT DATEPART(week, '2007-04-21 '), DATEPART(weekday, '2007-04-21 ') SET DATEFIRST Argument week hat zurückgegeben weekday hat zurückgegeben 1 16 6 2 17 5 7 datepart-Argumente des Typs year, month und day Die für DATEPART ( year, date), DATEPART ( month, date) und DATEPART ( day, date) zurückgegebenen Werte entsprechen den jeweiligen Rückgabewerten der Funktionen YEAR, MONTH und DAY. datepart-Argument "iso_week" ISO 8601 schließt das ISO-Wochensystem zur Nummerierung von Wochen ein.