- Így nézz tévét 2025-ben: új ajánlások, régi szabályok
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- A Micron újszerű módszerrel javítja QLC-s SSD-jének sebességét
- VR topik
- Milyen videókártyát?
- Továbbfejlődött a Keychron egéralternatívája a Logitech MX Masterre
- AMD Navi Radeon™ RX 9xxx sorozat
- Radeon RX 9060 XT: Ezt aztán jól meghúzták
- HiFi műszaki szemmel - sztereó hangrendszerek
- Kezdő fotósok digitális fényképei
Ú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
- ubyegon2: Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- Formula-1
- Szeged és környéke adok-veszek-beszélgetek
- A Bosch szerint Európának nem kellene az AI-t a halálba szabályozni
- Hálózatokról alaposan
- AliExpress tapasztalatok
- Kerékpárosok, bringások ide!
- Így nézz tévét 2025-ben: új ajánlások, régi szabályok
- Motorolaj, hajtóműolaj, hűtőfolyadék, adalékok és szűrők topikja
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- MikroTik CCR1009-7G-1C-1S+ Cloud Router
- Honor X7B szép állapotban 6/128GB fekete / 12 hónap jótállással!
- BESZÁMÍTÁS! Gigabyte B450M R5 5600X 16GB DDR4 512GB SSD RTX 3060 12GB Rampage SHIVA Seasonic 520W
- HP Probook 650 G4 15,6 i5-8350u 8. gen. GYÁRI MAGYAR VILÁGÍTÓ BILL!!!
- BESZÁMÍTÁS! ASROCK H310CM i5 8400 16GB DDR4 256GB SSD 1TB HDD GTX 1060 3GB Rampage SHIVA TT 500W
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest