Virtuál se správou na 4 měsíce za super cenu. AKCE: 1 + 3 měsíce zdarma.
Zobrazují se odpovědi 1 až 8 z 8

MySql SELECT medzi dvoma dátumami

  1. 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?

  2. Happy Robot :]
  3. 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

  4. 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 :)

  5. 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

  6. 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

  7. 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.

  8. Citace Původně odeslal sharkws Zobrazit příspěvek
    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

  9. Citace Původně odeslal trosa Zobrazit příspěvek
    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:)

Podobná témata

  1. Mysql select (MySQL)
    By Toliceek in forum Databáze
    Odpovědí: 2
    Poslední příspěvek: 11.03.2011, 20:47
  2. Mysql select - Where s pomlčkou ?
    By Re4DeR in forum Databáze
    Odpovědí: 23
    Poslední příspěvek: 17.09.2010, 22:32
  3. MySQL rychlejší select
    By mcever4 in forum PHP
    Odpovědí: 6
    Poslední příspěvek: 12.04.2010, 12:28
Hostujeme u Server powered by TELE3