Zadejte hledaný výraz...

MySql SELECT medzi dvoma dátumami

Ahojte potrebujem vyselektiť riadky z tabulky medzi dvoma dátumami. Toto funguje bez porblémov:
SELECT * FROM eut WHERE datum_vyhotovenia > "2012-02-07" AND datum_vyhotovenia < "2012-02-15"
ale je ten dátum z formulára dostanem den.mesiac.rok, skúšal som to upravit cez date format
datum_vyhotovenia > date_format("7.2.2012","%e.%c.%Y") AND datum_vyhotovenia > date_format("15.2.2012","%e.%c.%Y")
ale nejak mi to nefičí.
Neporadíte mi prosím?
11. 2. 2012 23:51:15
https://webtrh.cz/diskuse/mysql-select-medzi-dvoma-datumami/#reply730033
sharkws
verified
rating uzivatele
(6 hodnocení)
11. 2. 2012 23:58:56
nejlepší by bylo mít datumy v DB jako timestamp tzn. php time() = počet sekund od roku 1970 pak to při výpisu převedeš pomocí date() a při vkládání myslím pomocí strtotime()
a selecty jednoduše where 'datum_vyhotovenia' > strtotime("7.2.2012")
http://php.net/manual/en/function.strtotime.php
11. 2. 2012 23:58:56
https://webtrh.cz/diskuse/mysql-select-medzi-dvoma-datumami/#reply730032
hm
verified
rating uzivatele
(20 hodnocení)
12. 2. 2012 00:05:02
date_format neslouzi k tomu co pozadujes :) tohle bych udelal v php, treba pomoci preg_replace a do db uz posilal spravny format
ukladat unixtime je taky moznost, ale nevidim jediny duvod, zvlast u date sloupce je unixtime dost na houby :)
12. 2. 2012 00:05:02
https://webtrh.cz/diskuse/mysql-select-medzi-dvoma-datumami/#reply730031
sharkws
verified
rating uzivatele
(6 hodnocení)
12. 2. 2012 00:18:03
proč by bylo špatné ukládat timestamp ? podle mého je to lepší než selectovat něco jako WHERE datum_vyhotovenia > "2012-02-07" ale fungovat bude asi oboje
myslím že strotime bude daleko jednodušší než psát regexp
třeba datum_vyhotovenia > date("Y-m-d", strtotime("7.2.2012")) sice to není úplně ono ale fungovat to bude
zde by třeba byl lepší timestamp vypustilo by to ten date
12. 2. 2012 00:18:03
https://webtrh.cz/diskuse/mysql-select-medzi-dvoma-datumami/#reply730030
Dakujem za rady:)
---------- Příspěvek doplněn 12.02.2012 v 02:09 ----------
nakoniec som využil ten preg_replace (možno to niekomu pomôže)...
vstup: 13.10.2012
$zmeneny_datum = preg_replace('/(d{1,2}).(d{1,2}).(d{4})/' , "\3-\2-\1" , $povodny_datum);
vystup: 2012-10-13
12. 2. 2012 00:37:15
https://webtrh.cz/diskuse/mysql-select-medzi-dvoma-datumami/#reply730029
trosa
verified
rating uzivatele
(4 hodnocení)
12. 2. 2012 07:56:35
uf, at zije komplikace = nejjednodussi zpusob je:
$newdate=date('Y-m-d',strtotime($olddate));
S tim preg_replace je pochopitelne problem, kdyz Vam nekdo pouzije pomlcky, zada to bez nul a podobne. strtotime toto resi - vicemene prevede jakykoliv datum. Treba i "now + 7days" pochopi.
12. 2. 2012 07:56:35
https://webtrh.cz/diskuse/mysql-select-medzi-dvoma-datumami/#reply730028
hm
verified
rating uzivatele
(20 hodnocení)
12. 2. 2012 08:16:21
Napsal sharkws;757864
proč by bylo špatné ukládat timestamp ? podle mého je to lepší než selectovat něco jako WHERE datum_vyhotovenia > "2012-02-07"
timestamp neni vhodny pro ulozeni datumu, pro ulozeni casu proti nemu nic nemam, to at si kazdy pouziva co chce, ale pro ulozeni datumu proste timestamp neslouzi
12. 2. 2012 08:16:21
https://webtrh.cz/diskuse/mysql-select-medzi-dvoma-datumami/#reply730027
Napsal trosa;757910
uf, at zije komplikace = nejjednodussi zpusob je:
$newdate=date('Y-m-d',strtotime($olddate));
S tim preg_replace je pochopitelne problem, kdyz Vam nekdo pouzije pomlcky, zada to bez nul a podobne. strtotime toto resi - vicemene prevede jakykoliv datum. Treba i "now + 7days" pochopi.
je to fakt, takto je to jednoduchšie:)
12. 2. 2012 14:39:40
https://webtrh.cz/diskuse/mysql-select-medzi-dvoma-datumami/#reply730026
Pro odpověď se přihlašte.
Přihlásit