Πως να πάρω δεδομένα από ημερομηνία της μορφής 0000-00-00...

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Πως να πάρω δεδομένα από ημερομηνία της μορφής 0000-00-00...

Δημοσίευση από Akis_gr49 » 30 Ιουν 2008 19:11

Παιδιά καλησπέρα,

Στην βάση έχω ένα πεδίο που γράφει την ημερομηνία της παρακάτω μορφής

2008-01-05 12:00:00

Πως μπορώ να πέρνω μόνο την μήνα από την κάθε γραμμή; π.χ. Μάιος


Εγώ δοκίμασα αυτό, όπου παίρνω μόνο τα 4 πρώτα γράμματα. Δεν είναι όμως μπακάλικο;

$date = "2008-01-05 12:00:00";
echo substr($datetime, 0, 4); // 2008

Ευχαριστώ..

Άβαταρ μέλους
fafos
Script Master
Δημοσιεύσεις: 6231
Εγγραφή: 30 Νοέμ 2004 03:09

Πως να πάρω δεδομένα από ημερομηνία της μορφής 0000-00-00...

Δημοσίευση από fafos » 30 Ιουν 2008 20:45

Ypothetontas oti o mhnas sto paradeigma sou einai to 01:

Κώδικας: Επιλογή όλων

<?
$date = "2008-01-05 12&#58;00&#58;00"; 

$s = explode&#40;"-",$date&#41;;

$etos = $s&#91;0&#93;;
$mhnas = $s&#91;1&#93;;

$t = explode&#40;" ",$s&#91;2&#93;&#41;;
$hmera = $t&#91;0&#93;;
$ora = $t&#91;1&#93;;
echo $mhnas;
?>

Akis_gr49
Δημοσιεύσεις: 266
Εγγραφή: 07 Ιουν 2007 13:49

Πως να πάρω δεδομένα από ημερομηνία της μορφής 0000-00-00...

Δημοσίευση από Akis_gr49 » 30 Ιουν 2008 20:52

Ευχαριστώ fafos.

Μια άλλη λύση είναι και η παρακάτω..

SELECT * ,DATE_FORMAT(dateofpost,'%d/%m/%Y') as dateofpost

Όπου dateofpost βάζουμε το field της ημερομηνίας.


Ποια θα προτείνατε ως καλύτερη;

Άβαταρ μέλους
MaZz
Script Master
Δημοσιεύσεις: 345
Εγγραφή: 20 Ιούλ 2005 19:41
Τοποθεσία: Beyond the dark sun
Επικοινωνία:

Πως να πάρω δεδομένα από ημερομηνία της μορφής 0000-00-00...

Δημοσίευση από MaZz » 30 Ιουν 2008 21:08

Από τη στιγμή που έχεις ορίσει το πεδίο ως date ή datetime ο δεύτερος τρόπος είναι ο καλύτερος. Μία άλλη προσέγγιση είναι να ορίσεις το πεδίο ως varchar και να αποθηκεύσεις εκεί την ημερομηνία με τη μορφή unix timestamp. Η unix timestamp μπορεί να δημιουργηθεί με την time() της php ή με άλλες παρόμοιες συναρτήσεις σε άλλες γλώσσες.
If nothing in the world can change our children will inherit nothing.

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Πως να πάρω δεδομένα από ημερομηνία της μορφής 0000-00-00...

Δημοσίευση από Banavas » 30 Ιουν 2008 21:52

Ο παρακάτω κώδικας σου δίνει τον μήνα της ημερομηνίας που έδωσες ,αλλάζοντας το pattern της ημερομηνίας μπορείς να πάρεις όποιο στοιχείο θέλεις από αυτή την ημερομηνία.

Κώδικας: Επιλογή όλων

date&#40;"m",strtotime&#40;"2008-01-05 12&#58;00&#58;00"&#41;&#41;;
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Πως να πάρω δεδομένα από ημερομηνία της μορφής 0000-00-00...

Δημοσίευση από cherouvim » 30 Ιουν 2008 22:30

MaZz έγραψε:Μία άλλη προσέγγιση είναι να ορίσεις το πεδίο ως varchar και να αποθηκεύσεις εκεί την ημερομηνία με τη μορφή unix timestamp. Η unix timestamp μπορεί να δημιουργηθεί με την time() της php ή με άλλες παρόμοιες συναρτήσεις σε άλλες γλώσσες.
Το unix timestamp καλό είναι να μπει σε numeric datatype, και όχι σε varchar.
Παράγεται και με το unix_timestamp() της βάσης, αν και καλό είναι τα dates/times να παράγονται όλα από ένα σύστημα. Ή από τη γλώσσα ή τη βάση.

Παρόλαυτα καλύτερα είναι τα human readable datetime ή τα αντίστοιχα constructs που δίνει το κάθε rdbms.

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης