helmuthelmut2000
Goto Top

Update auf ein sql Datenbankfeld nach Kalenderwoche und Jahr

Hallo,

Ich habe folgendes Problem.
Ich ändere in einer PHP Seite mit dem Befehl:

"UPDATE Tabelle SET Spaltenname = '#FFFF33' WHERE kw +1 = datepart(wk, GETDATE())"

Das funktioniert sehr gut.
Aber nur in dem Jahr wo man ist.
Wenn man jetzt die Kalenderwoche für das nächste Jahr mit her nimmt dann funktioniert das nicht mehr.

Gibt es da einen Befehl wo man die aktuelle Kalenderwoche mit der Jahreszahl nehmen kann?

Gruß
Helmut

Content-ID: 257054

Url: https://administrator.de/forum/update-auf-ein-sql-datenbankfeld-nach-kalenderwoche-und-jahr-257054.html

Ausgedruckt am: 23.12.2024 um 04:12 Uhr

emeriks
emeriks 08.12.2014 um 16:27:30 Uhr
Goto Top
Hi,
"UPDATE Tabelle SET Spaltenname = '#FFFF33' WHERE kw +1 = datepart(wk, GETDATE())"

Das funktioniert sehr gut.
Aber nur in dem Jahr wo man ist.
Wenn man jetzt die Kalenderwoche für das nächste Jahr mit her nimmt dann funktioniert das nicht mehr.

Gibt es da einen Befehl wo man die aktuelle Kalenderwoche mit der Jahreszahl nehmen kann?

Also GetDate() liefert nun mal "Heute". Und "Heute" ist "dieses Jahr".

Wie sieht denn Deine Abfrage aus, wenn Du fürs nächste Jahr abfragen willst?

E.
colinardo
colinardo 08.12.2014 aktualisiert um 16:37:12 Uhr
Goto Top
Hallo Helmut,
also wenn du die Kalenderwoche für den selben Tag aber für das nächste Jahr brauchst ginge das so
..... datepart(wk, dateadd(year,1,getdate()))
Grüße Uwe

p.s. alle Infos zu den SQL-Datumsfunktionen erhältst du hier:
http://www.w3schools.com/sql/sql_dates.asp
helmuthelmut2000
helmuthelmut2000 09.12.2014 um 11:20:16 Uhr
Goto Top
Hallo colinardo,

Das Problem liegt bei mir wo anders.

Das ist nicht der datepart sondern bei dem WHERE.
Da habe ich eine Spalte mit kw und eine Spalte mit kw_jahr.

Jetzt sollte das in dem kw auch noch ein AND mit rein so das es mir das in dem Bereich
von dem im kw_jahr macht.
Wie schreibt man das?

"UPDATE Tabelle SET Spaltenname = '#FFFF33' WHERE kw AND kw_jahr=2014 +1 = datepart(wk, GETDATE())"

Das geht aber nicht.

Gruß
Helmut
colinardo
colinardo 09.12.2014 aktualisiert um 11:35:01 Uhr
Goto Top
Jetzt sollte das in dem kw auch noch ein AND mit rein so das es mir das in dem Bereich von dem im kw_jahr macht.
Ich verstehe den Zweck immer noch nicht so ganz, aber ich glaube du meinst das so ?
UPDATE Tabelle 
SET Spaltenname = '#FFFF33' 
WHERE kw = datepart(wk, dateadd(year,1,getdate())) AND kw_jahr = datepart(yyyy, dateadd(year,1,getdate()))
helmuthelmut2000
helmuthelmut2000 09.12.2014 um 12:01:21 Uhr
Goto Top
Hi,

Vielleicht muss ich das alles ganz anders machen.

In einer MSSQL DB ist eine Spalte mit dem Namen kw und eine Spalte mit dem Namen kw_jahr.
Ein user gibt in die Spalten den Termin ein, in welcher Kalenderwoche und Jahr etwas Erledigen werden soll.
Jetzt sollte eine Woche vor der Woche wo der Termin ist die Spalte gelb hinterlegt sein und die aktuelle Woche sollte rot sein.

Wie könnte man das noch machen. Das sind alles PHP Seiten.

Gruß
colinardo
colinardo 09.12.2014 aktualisiert um 12:25:41 Uhr
Goto Top
wir kennen hier deinen Tabellenaufbau und PHP Code nicht und wissen überhaupt nicht wie deine Seite aufgebaut ist
Nehme die Daten die der User an das PHP-Script via POST/GET übermittelt hat, schreibe sie in PHP in Variablen, prüfe sie auf Plausibilität und und verwende diese Variablen in der SQL-Query, fertig ...

Am besten mit einem prepared statement mit Platzhaltern in der SQL-Query um SQL-Injection vorzubeugen:
http://msdn.microsoft.com/en-us/library/ff754356.aspx

Grüße Uwe