Kezdőoldal » Számítástechnika » Weblapkészítés » Kéne segíteni hogy a mai...

Kéne segíteni hogy a mai dátumból hogy tudnák kivonni egy tárolt dátumot és még 1 olyan feltételt adni h ez az eredmény nagyobb vagy egyenlő legyen 1órával? A mai dátum azt tudom h a NOW () függvénnyel lehet.

Figyelt kérdés

2015. okt. 28. 21:15
 1/10 anonim ***** válasza:
Milyen nyelvben akarod ezt megoldani? Csak az maradt le.
2015. okt. 28. 22:19
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:
tényleg bocsi h elfelejtettem de mysql vagyis h php így mysqli-vel
2015. okt. 28. 22:20
 3/10 anonim ***** válasza:
2015. okt. 28. 22:37
Hasznos számodra ez a válasz?
 4/10 A kérdező kommentje:
ez nem java-ba van?
2015. okt. 28. 22:42
 5/10 A kérdező kommentje:

én így próbáltam:

WHERE `termek`.`id` = '2' AND (DateDiff(`allatok`.`vetel`,Now()) >= '0-0-0 1:0:0');

de ez így nem működik jól :/

2015. okt. 28. 22:46
 6/10 A kérdező kommentje:

most ahogy ezt próbálgatva : DateDiff(`allatok`.`vetel`,Now())

rájöttem arra, hogy ez nap-ba adja meg...

de valahogy meglehetne oldani h órába adja meg?

ezt már próbáltam szóval ezt pls ne írjátok válaszba : DateDiff("h",`allatok`.`vetel`,Now())

2015. okt. 28. 23:18
 7/10 2xSü ***** válasza:
100%

A DateDiff kizárólag dátumot számol, a paraméterként kapott értékeket DATE típusúvá konvertálja. De gondolom neked DATETIME típusú a `vetel` meződ.


Viszont létezik MySQL-ben egy ugyanilyen függvény, ami DATETIME típusok között számol különbséget. Kicsit más a paraméterezése:

[link]


Ergo TimestampDiff( unit , regidatum, ujabbdatum)


Tehát a megoldás:


WHERE `termek`.`id` = '2' AND (TimestampDiff( MINUTE , `allatok`.`vetel`,Now()) >= 1);


A másik megoldás, hogy UNIX timestamp-ra konvertálod mindkettőt, és lazán kivonod egymásból. Ekkor az eredményt másodpercben fogod megkapni:


WHERE `termek`.`id` = '2' AND (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(`allatok`.`vetel`) >= 60);

(Ha egy perc akart lenni az eredeti. Ha nem, akkor a 60 az időnek a másodpercben kifejezett értékére cserélendő.)

2015. okt. 29. 00:06
Hasznos számodra ez a válasz?
 8/10 A kérdező kommentje:
2xSü köszönöm szépen nagyon hasznos volt a válaszod ezzel már sikerült! :)
2015. okt. 29. 11:42
 9/10 anonim ***** válasza:
(nem, azok mysql utasítások, lényegében az INTERVAL +/- idő egység kell neked...)
2015. okt. 29. 11:51
Hasznos számodra ez a válasz?
 10/10 2xSü ***** válasza:

@H.Tibor87:


Ige, ezzel is megoldható, ugye a DATE_SUB egy adott dátumból kivon egy fix időegységet, és ez lehet összehasonlítási alap:


WHERE `termek`.`id` = '2' AND (`allatok`.`vetel` >= DATE_SUB(NOW() , INTERVAL 1 HOUR))


Ez a jelenlegi időpontból kivon egy órát, és ha ennél újabb a vetel mező értéke, akkor adja vissza az adott rekordot. (Ergo akkor, ha az egy órával ezelőtt időpont után történt a vétel, azaz egy óránál nem régebbi eseményről van szó.)

2015. okt. 29. 14:08
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!