DATE_FORMAT (in MySQL query)

Pagina: 1
Acties:
  • 156 views sinds 30-01-2008
  • Reageer

  • Zenda
  • Registratie: Oktober 2001
  • Laatst online: 30-06 19:09

Zenda

goes milk!

Topicstarter
Eej mensen! :)

ik heb een cell die 'date' heet wat een timestamp is.. (14 karakters dus 10102001121043)

nu wil ik in een query, de volgende kollommen pakken:
SELECT id, name, title, date FROM ....

nou wil ik ook gelijk de date in een format hebben (bijv. Tuesday October 10th 2001)
Ik las op mysql.com dat dat kon via DATE_FORMAT in een query..

dus heb ik dat geprobeerd.. SELECT id, name, title, DATE_FORMAT('date_timestamp', '%W %M %Y')

toen deed ik $row = mysql_fetch_array($query) en nou weet ik dus niet hoe ik die date eruit haal :)

Heeft iemand suggesties??

$row[date] werkt dus niet..
Alvast bedankt!

- Zenda

Zenda likes some milk every now and then..


Verwijderd

nu wil ik in een query, de volgende kollommen pakken:
SELECT id, name, title, date FROM ....

...
dus heb ik dat geprobeerd.. SELECT id, name, title, DATE_FORMAT('date_timestamp', '%W %M %Y')

In het eerste stukje zeg je dat de kolom 'date' heet.. en in het 2e stukje wil je iets uit 'date_timestamp' halen? Moet dat niet 'date' zijn?

Verwijderd

gebruik in je sql statement:

SELECT date_format(datum, '%e-%c-%Y %T') as datum FROM tabel

en daarna

while ($resultaat = mysql_fetch_array($tabel))
{
echo $resultaat["datum"];
}


en dan doe tie het :)

  • Zenda
  • Registratie: Oktober 2001
  • Laatst online: 30-06 19:09

Zenda

goes milk!

Topicstarter
Just joined tweakers and love it already *D

Zenda likes some milk every now and then..


  • Zenda
  • Registratie: Oktober 2001
  • Laatst online: 30-06 19:09

Zenda

goes milk!

Topicstarter
Hmm.. Okeej :(

hij doet het dus niet.. :(

Ik heb het nu als volgt:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
$sql = "SELECT id, usrid, title, DATE_FORMAT('date', '%W %M %D %Y') as date FROM $table_1";
$res = mysql_query($sql);

if ($res)
{
    while($row = mysql_fetch_array($res))
    {
        $username = Identify($row[usrid]);
        echo "<tr><td>$row[title]</td><td>$username</td><td>$row[date]</td>";
    }
}
else
    echo "<tr><td colspan=4>No news items.</td></tr>";

Ziet iemand wat ik verkeerd doe? :/

---------
[changed]
---------

Okeej het is me nu dus gelukt..

ik had :
code:
1
$sql = "SELECT id, usrid, title, DATE_FORMAT('date', '%W %M %D %Y') as date";

Ik ben er nu achter gekomen, dat de kolomnaam en de 'as' naam niet dezelfde naam mogen hebben want dan doettie het gewoon niet! (uit reacties op deze post blijkt dus dat 'date' gereserveerd is door sql ;))

Ik heb het nu zo:
code:
1
$sql = "SELECT id, usrid, title, DATE_FORMAT('date', '%W %M %D %Y') as datum";

dit doet het dus wel...
de 'date' is de kolom die aangegeven is als 'timestamp' (bestaand dus uit 14 karakters).

'datum' is de naam die je gebruikt voor de array..

Als je het dan de SQL code in een query zet en vervolgens in een array:
code:
1
2
$res = mysql_array($sql);
$row = mysql_fetch_array($res);

dan moet:
code:
1
echo "De datum uit de datebase is: $row[datum]<br>\n";

het doen!

Zenda likes some milk every now and then..


Verwijderd

Als ik het goed zie dan moet je nog even quotejes om $row[date] zetten. Dus: $row["date"]

Je gebruikt namelijk een associatief array en daarvan kun je de indexen benaderen via de naam als string. (Voorzover ik me herinner, het is namelijk al wel een jaartje geleden dat ik iets dergelijks gemaakt heb.)

  • thomaske
  • Registratie: Juni 2000
  • Laatst online: 09-09 14:51

thomaske

» » » » » »

date is misschien een reserved word, dus gebruik eens
code:
1
DATE_FORMAT('date', '%W %M %D %Y') as datum

misschien dat het helpt..

Brusselmans: "Continuïteit bestaat niet, tenzij in zinloze vorm. Iets wat continu is, is obsessief, dus ziekelijk, dus oninteressant, dus zinloos."


  • tomato
  • Registratie: November 1999
  • Niet online
[half off-topic]

Het is niet echt mooi om een column 'date' te noemen. Heb je hierbij nagedacht of het woord 'date' geen gereserveerd woord is in SQL? Het is hier niet zo'n probleem, maar ik kan me voorstellen dat niet ieder systeem blij is met deze naamgeving.
Daarnaast is het vanuit een ontwerp oogpunt gezien niet echt mooi. De naam 'date' is niet echt veelzeggend. Bedoel je een geboorte datum, noem hem dan 'BirthDate', bedoel je een datum van posten noem hem dan 'PostDate', etc.

my $cents = .02; ;)

[/half off-topic]

[edit]
Het was hier dus wel het probleem ;)
Je kunt aliassen zeker wel dezelfde naam geven (Veldnaam AS Veldnaam). Dat je nu geen last hebt van het gereserveerde woord 'date' is omdat je het tussen quotes hebt gezet.

  • Zenda
  • Registratie: Oktober 2001
  • Laatst online: 30-06 19:09

Zenda

goes milk!

Topicstarter
Ik dank u allen hartelijk *D

Zenda likes some milk every now and then..

Pagina: 1