DATE eri muotoon

Nyt olisi sellaista ongelmaa tarjolla, että minulla mysql kannassa tavaraa päivämäärittäin ja päivät ovat muotoa 2007-08-16
ja se pitäisi saada tulostettua muotoon 16.08.2007
Tulostus pitäisi tehdä vasta pvm. vertailun jlk. eikä mysql kyselyssä :)
Kiitti etukäteen jo vaivannäöstä!
5554
Äänestä

Muut lukivat myös

Vastaukset 5

Vanhimmat

strtotime osaa tuon homman.

Eka haet sieltä kannasta sen vvvv.kk.pp johonkin muuttujaan ($date) ja sitten

$otherdate = date('d F Y',strtotime($date));

suoraan mysql-haussa voit muutta sen myös

select date_format(now(), '%d/%M/%Y')

DATETIME-muotoisen kentän saa unixin timestampiksi suoraan haussa

select UNIX_TIMESTAMP('aika') as timestamp from taulu;

ja toiseen suuntaan FROM_UNIXTIME()-komennolla

Äänestä
  • Kiitosta vaan!
    Pitääpä strtotime:ä kokeilla.
    mysql-haussa osasinkin jo, mutta se ei nyt vastannut tarkoitusta.

    Äänestä

  • MerkkiErkki kirjoitti:

    Kiitosta vaan!
    Pitääpä strtotime:ä kokeilla.
    mysql-haussa osasinkin jo, mutta se ei nyt vastannut tarkoitusta.

    "mysql-haussa osasinkin jo, mutta se ei nyt vastannut tarkoitusta."

    Perusteleppas miksi ei?
    Päivämäärä muotoilu lähes aina on suotavaa tehdä juurikin tietokannan puolella. PHP:n puolella ei ole mitään järkeä muotoilla sitä.
    http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format

    SELECT DATE_FORMAT(aika, '%W %M %Y') AS muotoiltu_paivays ORDER BY aika näin järjestyskin pysyy kunnos.

    Äänestä

  • Jeheh kirjoitti:

    "mysql-haussa osasinkin jo, mutta se ei nyt vastannut tarkoitusta."

    Perusteleppas miksi ei?
    Päivämäärä muotoilu lähes aina on suotavaa tehdä juurikin tietokannan puolella. PHP:n puolella ei ole mitään järkeä muotoilla sitä.
    http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format

    SELECT DATE_FORMAT(aika, '%W %M %Y') AS muotoiltu_paivays ORDER BY aika näin järjestyskin pysyy kunnos.

    Tää on nyt taas tätä "miksi teet näin, etkä näin, kun näin se 'kuuluisi' tehdä" keskustelua, jonka takia näitä ohjelmointi foorumeita ei tahdo viitsiä lukea, kun aina joku 'viisastelee'.

    Minusta oli vaan helpompi tehdä päivämäärässä olevan päivämäärän vertailu, kun se oli alkuperäisessä muodossaan. Siis mikäli joku asia on tapahunut ennen tätä päivää, jälkeen jonkun päivän, jonain päivänä jne. Lisäksi kun on jo paljon, jo toimivaa juttua tehtyä, mutta tarvin tulostuksen pariin paikkaan, niin pääsen helpommalla, kun teen pienen korjauksen, enkä koko pask** ala uudelleen väsäämään.
    UGH!

    Äänestä

  • MerkkiErkki kirjoitti:

    Tää on nyt taas tätä "miksi teet näin, etkä näin, kun näin se 'kuuluisi' tehdä" keskustelua, jonka takia näitä ohjelmointi foorumeita ei tahdo viitsiä lukea, kun aina joku 'viisastelee'.

    Minusta oli vaan helpompi tehdä päivämäärässä olevan päivämäärän vertailu, kun se oli alkuperäisessä muodossaan. Siis mikäli joku asia on tapahunut ennen tätä päivää, jälkeen jonkun päivän, jonain päivänä jne. Lisäksi kun on jo paljon, jo toimivaa juttua tehtyä, mutta tarvin tulostuksen pariin paikkaan, niin pääsen helpommalla, kun teen pienen korjauksen, enkä koko pask** ala uudelleen väsäämään.
    UGH!

    "Tää on nyt taas tätä "miksi teet näin, etkä näin, kun näin se 'kuuluisi' tehdä" keskustelua, jonka takia näitä ohjelmointi foorumeita ei tahdo viitsiä lukea, kun aina joku 'viisastelee'."

    Täh?
    En minä viisastellut, kysyin vain asiallisesti perusteluita miksi haluat tehdä sen juurikin PHP:n puolella, etkä tietokannan. Tosiasia on kuitenkin se että yleensä päivämäärän muotoilu on järkevintä tehdä juurikin tietokannan puolella. Antees jos sait viestistäni tuommosen kuvan.


    "Minusta oli vaan helpompi tehdä päivämäärässä olevan päivämäärän vertailu, kun se oli alkuperäisessä muodossaan. Siis mikäli joku asia on tapahunut ennen tätä päivää..."

    Itselläni on samanlainen juttu, jossa tänään lähetetyt viestit korostetaan eri värillä. Päivämäärän muotoilun teen tietokannan puolella, ja ehtolauseilla http://dev.mysql.com/doc/refman/5.0/en/flow-control-constructs.html katson onko tänään, jos on niin true muutoin false. Tällöin PHP:n puolella ei tartte mitään turhia vertailuja ja päivämäärän muunnoksia suorittaa.

    Ja sopii kysyä miksi sinulla on edes päivämäärät DATE tyyppisessä sarakkeessa, jos kerran haluat päivämäärät muotoilla PHP:n puolella?
    Ennemmin INT tyyppiseen Unixin timestampi, jolloin sitä ei erikseen tartte muuttaa Unixin timestampiksi.


    "niin pääsen helpommalla, kun teen pienen korjauksen, enkä koko pask** ala uudelleen väsäämään."

    Niimpä, ehkä pääsee helpommalla jos tekee vain pienen korjauksen, mutta aikaa myöten noita pieniä korjauksia tulee paljon jolloin lopulta on sekanen koodi kyseessä.

    Äänestä

Kommentoi aloitusta


MerkkiErkki kirjoitti:

Nyt olisi sellaista ongelmaa tarjolla, että minulla mysql kannassa tavaraa päivämäärittäin ja päivät ovat muotoa 2007-08-16
ja se pitäisi saada tulostettua muotoon 16.08.2007
Tulostus pitäisi tehdä vasta pvm. vertailun jlk. eikä mysql kyselyssä :)
Kiitti etukäteen jo vaivannäöstä!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu