- M0ng00se: Hardvert áruhitelre?
- Luck Dragon: Asszociációs játék. :)
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- sziku69: Szólánc.
- eBay-es kütyük kis pénzért
- Rap, Hip-hop 90'
- Brogyi: CTEK akkumulátor töltő és másolatai
- bitpork: MOD Júni 13 Augusztus 2- szombat jelen állás szerint.
- btz: Internet fejlesztés országosan!
- Steven: Sokat utazó kávéfüggők ide!
Ú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
Hirdetés
- Új MSI KATANA 15 Gamer Tervező Laptop 15,6" -35% i7-13620H 10Mag 16/1TB RTX 4060 8GB FHD 144Hz
- HP Omen - 27" IPS - UHD 4K - 144Hz 1ms - NVIDIA G-Sync - FreeSync - HDR 400 - USB-C - KVM Switch
- Garanciális MSI Katana GAMER 15,6"240Hz!i5 12500H(16X4,5Ghz)RTX 3060 6 GB VGA,32-64GB RAM/1TB SSD
- Bivaly MAGYAR Lenovo P1 gen2 (Core I7 32 Gb 1Tb 15" 4K 4Gb Nvidia) Laptopom eladó!!!
- HP ProBook 640 G8, 14" FHD IPS Touch, I5-1145G7 CPU, 16GB DDR4, 256GB SSD, WIN 11
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 4060 Ti 8GB GAMER PC termékbeszámítással
- AKCIÓ! ASUS STRIX B650E-E R7 7700 64GB DDR5 1TB SSD RTX 3080 10GB Thermaltake Ceres 500 850W
- DELL PowerEdge R730xd 12LFF+2SFF rack szerver - 2xE5-2680v3,64GB RAM,4x1GbE,H730 RAID v ZFS
- Telefon felvásárlás!! Apple iPhone 16, Apple iPhone 16e, Apple iPhone 16 Plus, Apple iPhone 16 Pro
- Samsung Galaxy S21 Ultra , 12GB , 128 GB , Kártyafüggetlen
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged