Hirdetés
- Samsung Galaxy S23 Ultra - non plus ultra
- Yettel topik
- Merész dizájn és új teleobjektív az iPhone 17 Pro mobilokban
- Samsung Galaxy A56 - megbízható középszerűség
- Xiaomi 15 - kicsi telefon nagy energiával
- Samsung Galaxy S25 - végre van kicsi!
- Telekom mobilszolgáltatások
- Apple iPhone 13 Pro Max - őnagysága
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Az Apple bemutatta az iPhone 17-et
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
Speeedfire #9180 üzenetére
where bday >= '1982-08-17' and bday<='1950-02-14'
Csak azt magyarázd el nekem, hogyan fog valaha is teljesülni az, hogy egy dátum 1982-nél későbbi, de 1950-nél korábbi!Ja hogy a kliens pontos ideje kell (tehát a látogató szerinti idő), azt előbb nem írtad, így érthető.
Én a helyedben ezt a számolgatást inkább az adatbázisra bíznám, ha már úgyis onnan kellenek az adatok. Bár ez megint hitkérdés, mert a query cache szempontjából lehet, hogy jobb, ha inkább PHP-ra bízod a számolást.
Na de abból már eleve ki lehet indulni, hogy a MySQL-ben nagyon egyszerűen lehet egyszerű intervallumokat számolni, lásd pl. ezt:
SELECT DATE_SUB( NOW(), INTERVAL 60 YEAR );
Eredménye épp most:
1952-04-08 19:41:06Most leteszteltem az intervallumokra egy teszttáblával és néhány tesztadattal, úgy, hogy az ezelőtt 30-60 évvel születettekre vagyok kíváncsi, ez lesz az intervallum, a teszttáblával tök jól működött:
Táblastruktúra:
CREATE TABLE IF NOT EXISTS `test_dates` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`my_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_hungarian_ci AUTO_INCREMENT=10 ;
INSERT INTO `test_dates` (`id`, `my_date`) VALUES
(1, '2012-04-08 16:52:36'),
(2, '2012-02-06 10:00:00'),
(3, '2012-01-09 11:36:00'),
(4, '2011-01-09 08:00:49'),
(5, '1981-07-07 22:00:00'),
(8, '1972-03-14 23:33:00'),
(9, '1978-04-04 16:00:00');A query az intervallumokkal:
SET @now = NOW( );
SET @interval_start = 30;
SET @interval_end = @interval_start + 30;
SET @date_first = DATE_SUB( @now , INTERVAL @interval_end YEAR );
SET @date_second = DATE_SUB( @now , INTERVAL @interval_start YEAR );
SELECT * FROM `test_dates`
WHERE
`my_date` >= @date_first
AND
`my_date` < @date_second
ORDER BY `my_date` ASC;Nálam "a lekérdezés 0.0221 másodpercig tartott".
Új hozzászólás Aktív témák
- Samsung Galaxy S23 Ultra - non plus ultra
- LED világítás a lakásban
- Luck Dragon: Asszociációs játék. :)
- Yettel topik
- One otthoni szolgáltatások (TV, internet, telefon)
- Merész dizájn és új teleobjektív az iPhone 17 Pro mobilokban
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- GL.iNet Flint 2 (GL-MT6000) router
- Nem tetszik pár profi eSport játékosnak, hogy Intel CPU-val kell játszaniuk
- sziku69: Szólánc.
- További aktív témák...
- Apple Watch Series 4 Nike 44mm Teljes doboz, sok tartozék, 100% akku
- LG 77C4 - 77" OLED evo - 4K 144Hz - 0.1ms - NVIDIA G-Sync - FreeSync - HDMI 2.1 - 1000 Nits
- Dell G15 5530 gyári kijelzőt keresek (DP/N: 0VPD4)
- IDE HDD-k vegyesen nagy mennyiségben 32db egyben
- Eladó gamer / workstation PC + monitor garanciás, dobozos alkatrészekkel
- Asus ROG Zephyrus G14 - 14"2.8K OLED 120Hz - Ryzen 9 8945HS - 16GB - 1TB - RTX 4060 -2,5 év garancia
- Gamer PC-Számítógép! Csere-Beszámítás! I5 12400F / RTX 3070 8GB / 32GB DDR4 / 1TB SSD
- Samsung Galaxy A32 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- HIBÁTLAN iPhone 14 256GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3244
- HIBÁTLAN iPhone 12 Pro Max 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3109
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest