mashiina Posted November 16, 2011 Report Share Posted November 16, 2011 (edited) Kā varētu izvilkt dzimšanas dienas turpmākām dienām no date tipa lauka? Šodienai izskatītos šādi: select * from tabula where day(dz_datums)='".date("d")."' and month(dz_datums)='".date("m")."' Bet vēlētos izvilkt ne tikai šodienas, bet ar arī nākamo dienu dzimšanas dienas. Edited November 16, 2011 by mashiina Quote Link to comment Share on other sites More sharing options...
daGrevis Posted November 16, 2011 Report Share Posted November 16, 2011 Ja tev datubāzē glabājas laiks kā UNIX timestamp, tad WHERE BETWEEN :x AND :y, kur :x ir pašreizējā sekunde, bet :y - pēdējā sekunde, attiecīgi - mēnesim, gadam... ko vien vajag (un to var uzmeistarot ar mktime()). Quote Link to comment Share on other sites More sharing options...
mashiina Posted November 16, 2011 Author Report Share Posted November 16, 2011 Lauks ir date tipa, respektīvi yyyy-mm-dd, tā kā šādi nederēs. Quote Link to comment Share on other sites More sharing options...
Grey_Wolf Posted November 16, 2011 Report Share Posted November 16, 2011 (edited) Lauks ir date tipa, respektīvi yyyy-mm-dd, tā kā šādi nederēs. priekš datu iegūšanas tas pat ir labāk, jo SQL ļoti labi māk apstrādāt datumus.. Paskaties SQL dokumentācijā, tur ir PĀRI PAR 60 funkcijām darbam ar datumiem un laikiem, gan atlasei, gan formatēšnai utt... Edited November 16, 2011 by Grey_Wolf Quote Link to comment Share on other sites More sharing options...
marcis Posted November 17, 2011 Report Share Posted November 17, 2011 Kaut kā tā tas varētu izskatīties par 3 dienām: SELECT * FROM `tabula` WHERE FLOOR( (UNIX_TIMESTAMP( CONCAT( YEAR(NOW())+(DATE_FORMAT(`dz_datums`, '%m-%d') < DATE_FORMAT(NOW(), '%m-%d')), DATE_FORMAT(`dz_datums`, '-%m-%d') ) )-UNIX_TIMESTAMP())/86400 ) < 3 Quote Link to comment Share on other sites More sharing options...
NBS Posted November 17, 2011 Report Share Posted November 17, 2011 Mans variants: tabulaNos: `id` `nicks` `dateofbirth` SQL> SELECT id, nicks, BDDate FROM 'tabulaNos' AS t WHERE DATE_SUB(CURDATE(),INTERVAL 3 DAY) >= BDDate; Ar cieņu, NBS. Quote Link to comment Share on other sites More sharing options...
marcis Posted November 17, 2011 Report Share Posted November 17, 2011 @NBS, tavs variants derētu, ja visi lietotāji būtu dzimuši šogad :) Quote Link to comment Share on other sites More sharing options...
NBS Posted December 5, 2011 Report Share Posted December 5, 2011 @NBS, tavs variants derētu, ja visi lietotāji būtu dzimuši šogad :) Uh, nu jā, ja būtu zināms BDDate = kā dzimšanas datums, tad gan palīdzētu :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.