- Motorola Moto G06 Power – nagyfater új zakót vett
- iPhone topik
- Xiaomi 17 Ultra - jó az optikája
- One mobilszolgáltatások
- Itt a Galaxy S26 széria: az Ultra fejlődött, a másik kettő alig
- Xiaomi 17 - még mindig tart
- Telekom mobilszolgáltatások
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Szerény teleppel érkezik a Galaxy A37/A57
- Samsung Galaxy A54 - türelemjáték
Új hozzászólás Aktív témák
-
bambano
titán
válasz
mr.nagy
#3935
üzenetére
bocs, mssql-hez nem értek. postgresben úgy csinálnám, hogy van generate_series függvény, ami halmazt ad vissza. az egyik lehetőség: ezt
select now()+generate_series(0,7)*'1 day'::interval;
berakod egy subselectbe, és kiválasztod azt, ahol a hét napja az, amit szeretnél.Ha az mssql is tudja, amit a postgres, hogy sorozat timestamp is lehet, akkor egyszerűbb a dolog:
select generate_series(now(),now()+'7 days'::interval,'1 day'); -
válasz
mr.nagy
#3935
üzenetére
Remélem jó lesz, amit összeraktam
.
A lényeg, ha a +8 nap dátum péntekre vagy előbbre esik, akkor 5-től annyival kevesebb napot kell hozzáadni a + 8 napos dátumhoz, ahányadik nap a héten a + 8 napos dátum.
Ha péntek után esik a +8 nap, akkor 12-től (5 + 7, azaz péntek + 1 hét) annyival kevesebb napot kell hozzáadni a + 8 napos dátumhoz ahányadik nap a héten a + 8 napos dátum.Remélem sikerült érthetően fogalmaznom, így jó pár pohár bor után
. Mindenféleképpen próbáld ki pár napon, hogy jól számol-e 
Igazából az első set date-s sor és az utolsó iif-esre van szükséged, a többi csak az átláthatóság kedvéért hagytam benne.
set DATEFIRST 1 -- ezzel beállítod, hogy a hétfő legyen a hét első napja, mert alap esetben, ha jól tudom, akkor a vasárnap az 1. Én jobban szeretem, ha a hétfő az 1.
select cast(getdate()as date) as "Mai nap dátum"
,datepart(weekday,getdate()) as "Mai nap sorszáma a héten"
,cast(getdate()+8 as date) as "Mai nap + 8 nap dátum"
,datepart(weekday,getdate()+8) as "Mai nap + 8 nap sorszám a héten"
,iif(datepart(weekday,getdate()+8)<=5,cast(getdate()+8+(5-datepart(weekday,getdate()+8)) as date),cast(getdate()+8+(12-datepart(weekday,getdate()+8))as date)) -
Zalanius
tag
válasz
mr.nagy
#3935
üzenetére
Az ilyen "rákövetkező hét x. nap" stb. elég mókolós tud lenni, ezért ha nem megy egyből kisujjból, célszerű felírni néhány segédváltozót, azzal elbabrálni, tesztelgetni. Két példa lent:
-- 1. Olvasmányosan
DECLARE @bazisnap date = SYSDATETIME();
DECLARE @napdelta int = 8; -- adjunk hozzá x napot
DECLARE @celnap int = 6; -- a következő pénteket keressük, a péntek sorszáma 6, ez a skála 1-7 közötti
DECLARE @eredmeny date;
-- 8 nap múlva milyen nap lesz?
DECLARE @x1 int = (SELECT DATEPART(dw, DATEADD(day, @napdelta, @bazisnap)));
-- Adjuk az deltához a még hiányzó napokat, két eset lehetséges
IF @x1 > @celnap SET @napdelta = @napdelta + 7 - (@x1 - @celnap); ELSE SET @napdelta = @napdelta + @celnap - @x1;
SET @eredmeny = DATEADD(day, @napdelta, @bazisnap);
-- Ellenőrizhető az összes részszámítás is, ha kell
SELECT @eredmeny, @napdelta, @x1;
-- 2. Kevésbé olvasmányosan
SELECT CASE WHEN DATEPART(dw, DATEADD(day, 8, SYSDATETIME())) <= 6 THEN CONVERT(date, DATEADD(day, 8 + 6 - DATEPART(dw, DATEADD(day, 8, SYSDATETIME())), SYSDATETIME()))
ELSE CONVERT(date, DATEADD(day, 8 + 7 - (DATEPART(dw, DATEADD(day, 8, SYSDATETIME())) - 6), SYSDATETIME()))
END; -
válasz
mr.nagy
#3935
üzenetére
Azt hiszem a weekday utasítás adja meg egy adott nap hányadik a héten.Ez alapján meg lehet képlettel hatarozni a következő pénteket. Azt hiszem a vasárnap az 1 alap sql beállításban, de nem vagyok benne biztos. Telefonról vagyok, ha nem megy, akkor este jobban utána tudok nézni.
Új hozzászólás Aktív témák
Hirdetés
- Luck Dragon: Asszociációs játék. :)
- balojazz: Szódakészítés üzembiztosan és olcsón! Figyelem, csak hardcore szódázóknak!
- Motorola Moto G06 Power – nagyfater új zakót vett
- Építő/felújító topik
- iPhone topik
- Háztartási gépek
- Xiaomi 17 Ultra - jó az optikája
- Fogyjunk le!
- Túraautó topik
- Fejhallgató erősítő és DAC topik
- További aktív témák...
- GeForce GTX 1650 (OEM HP) - külső tápot nem igényel
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
- Honor 200 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- Bomba ár! HP Elite Dragonfly i7-8G I 16GB I 512SSD I 13,3" FHD Touch I Cam I W11 I Garancia!
- HIBÁTLAN iPhone 12 Pro 128GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS4644
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

.
. Mindenféleképpen próbáld ki pár napon, hogy jól számol-e

