Ik heb de volgende query:

<?php
$HiTemp = mysql_query("SELECT * FROM weerdata WHERE Date='$date' ORDER BY HiTemp DESC, Time ASC LIMIT 1", $db);
if ($date) {
while ($HiTemp_result = mysql_fetch_array($HiTemp)){
echo "<td>". $HiTemp_result['HiTemp'] . "</td><td>" . $HiTemp_result['Time'] . "</td>";
}
}
else {
echo "$error";
}
?>

De query haalt uit mijn database van een bepaalde dag de HiTemp met de daarbij behorende Time. Deze Time (tijd) staat in de database als 00:00:00 (H, i, s), maar ik wil dat de echo geen seconden weergeeft, dus: 00:00 (H, i). Hoe doe ik dit?
je kan het ook met explode doen, maar met MySQL is het veel makkelijker & beter...


<?php
    $jedatum = '00:00:00';
    $hoi = explode(':',$jedatum);
    $lol = $hoi[0].$hoi[1];
    echo $lol;
?>


En dan nog ff wat lees voer :)
Om je nog wat verder op weg te helpen:

Klik
Nee niek !

@Boaz , goezo

@Rene, zorg er in ieder geval voor dat het datum veld ook echt een DATE of DATETIME of TIME is in je database en kijk dan naar Boaz zijn post.

Hint: DATE_FORMAT

De explode werkt... Maar hoe gebruik ik de functie DATE_FORMAT?

Het zal zoiets moeten worden:

SELECT DATE_FORMAT('Time', '%H:%i');

Dit heb ik er van gemaakt:

<?php
$LowTemp = mysql_query("SELECT * FROM weerdata WHERE Date='$date' ORDER BY LowTemp, DATE_FORMAT('Time', '%H:%i') ASC LIMIT 1", $db);
if ($date) {
while ($LowTemp_result = mysql_fetch_array($LowTemp)){
echo "<td>" . $LowTemp_result['LowTemp'] . "</td><td>" . $LowTemp_result['Time'] . $Time . "</td>";
}
}
else {
echo "$error";
}
?>


maar dat werkt niet... Waar moet de DATE_FORMAT staan?
(en het is echt een TIME in de database)
SELECT DATE_FORMAT('Date', '%H:%i') AS tijd FROM tabel.

nu als je een mysql_fetch_assoc doet haal je hem op als
$variabel['tijd']
Die DATE_FORMAT moet vlak na je SELECT staan:

SELECT DATE_FORMAT(tijdveld, '%H:%i') AS korte_tijd
FROM tabelnaam
Maar hoe combineer ik dat dan met de SELECT * FROM weerdata etc.. want hij zoekt eerst naar de hoogste waarde van HiTemp. De daarbij behorende tijd moet worden omgevormd. Iets met UNION?
Gewoon scheiden met een komma:

SELECT
    HiTemp,
    DATE_FORMAT(blabla) AS korte_tijd
Het is inmiddels gelukt om de tijd van uren:minuten:seconden om te zetten naar uren:minuten. Dit met behulp van het volgende:

<?php
$HiTemp = mysql_query("SELECT date_format(Time, '%H:%i') as shorttime FROM weerdata WHERE Date='$date'", $db);
if ($date) {
while (list($shorttime) = mysql_fetch_array($HiTemp)){
echo "$shorttime";
}
}
else {
echo "$error";
}
?>

Hij geeft nu als resultaat alle tijdstippen van een bepaalde datum.

Nou is het nog de bedoeling om de tijd behorende bij de hoogste waarde van HiTemp om te zetten naar uren:minuten. De query voor de hoogste waarde van HiTemp met bijbehorende tijd is als volgt:

<?php
$HiTemp = mysql_query("SELECT * FROM weerdata WHERE Date='$date' ORDER BY HiTemp DESC, Time ASC LIMIT 1", $db);
if ($date) {
while ($HiTemp_result = mysql_fetch_array($HiTemp)){
echo $HiTemp_result['HiTemp'] . "<br />" . $HiTemp_result['Time'] . "<br />";
}
}
else {
echo "$error";
}
?>

Hoe combineer ik beide ?

Reageren