Tutorial Mengolah Data Tanggal dan Waktu di MySql

Setelah Anda menggunakan MySQL tentu sulit untuk meninggalkan database yang “cuepat” dan gratis ini. Memang MySQL sangat cepat dalam melakukan kueri sehingga menjadi database yang paling populer dan sesuai untuk web development. Pada saat pertama kali memasuki dunia MySQL sebagai newbie, Anda mungkin jarang berurusan dengan si “date” dan si “time” tetapi seiring dengan tuntutan pekerjaan atau peningkatan pengetahuan tentang MySQL tentu Anda akan berurusan dengan si “date” dan si “time”.

Artikel ini akan mencoba membantu Anda berkenalan dan bergaul atau “menggauli” si Date dan si Time ini sehingga Anda memiliki hubungan yang lebih intim dengan mereka. Dengan memiliki pengetahuan tentang tipe data Date, Time serta fungsi Date dan Time yang telah disediakan oleh MySQL maka pembuatan aplikasi yang terkait dengan Date dan Time akan lebih cepat dan efektif.

Penulis akan menyajikan dalam beberapa artikel bersambung di situs benpinter.net maupun milis benpinter di yahoogroups.com.

Versi MySQL yang penulis gunakan pada pembahasan ini adalah MySQL 3.23.33, tetapi jangan kuatir karena penulis percaya bahwa penanganan terhadap data tanggal dan waktu pada versi berikutnya hampir sebagian besar masih sama.

Pertama-tama, Anda perlu mengetahui bahwa ada empat tipe data di MySQL yang terkait dengan data tanggal dan waktu, yaitu:

DATETIME, DATE, TIMESTAMP, TIME, dan YEAR

Besar ukuran data dari tiap-tiap tipe data tersebut adalah:
DATE 3 bytes
DATETIME 8 bytes
TIMESTAMP 4 bytes
TIME 3 bytes
YEAR 1 byte

Sesuai sebutannya… DATE digunakan untuk menyimpan data tanggal saja, DATETIME menyimpan data tanggal dan waktu, TIMESTAMP dapat digunakan untuk menyimpan data tanggal dan waktu sesuai pengaturan jumlah kolom untuk TIMESTAMP, TIME untuk menyimpan waktu saja dan YEAR untuk menyimpan data tahun.

Range dan format dari masing-masing tipe data tersebut adalah:

DATE
Range atau kisaran data yang didukung adalah ‘1000-01-01’ sampai ‘9999-12-31’. MySQL menampilkan data tanggal dengan format ‘YYYY-MM-DD’ (tahun-bulan-tanggal) dan mengizinkan Anda mengisinya dengan data string maupun angka.

DATETIME menyimpan data dalam format ‘YYYY-MM-DD HH:MM:SS’ dan juga mengizinkan Anda mengisi data dengan string maupun angka.

TIMESTAMP[(M)]
TIMESTAMP memiliki kisaran data ‘1970-01-01 00:00:00’ sampai tahun 2037. TIMESTAMP dapat ditampilkan dalam format YYYYMMDDHHMMSS, YYMMDDHHMMSS, YYYYMMDD, atau format YYMMDD berdasar argumen M yang Anda tentukan. TIMESTAMP sangat berguna untuk menyimpan data operasi INSERT atau UPDATE karena akan diset sesuai tanggal dan waktu operasi terakhir bila Anda tidak memberinya nilai. Anda juga dapat menset pada tanggal dan waktu saat ini dengan memberinya nilai NULL. TIMESTAMP(8) atau TIMESTAMP(14) merupakan data angka sedangkan tipe data kolom TIMESTAMP(X) yang lain adalah string. TIMESTAMP di MySQL berbeda dengan TIMESTAMP di UNIX.

TIME
Untuk data waktu. Kisarannya adalah ‘-838:59:59’ sampai ‘838:59:59’. MySQL menampilkan nilai TIME dengan format ‘HH:MM:SS’ dan mengizinkan Anda mengisi nilai ke data kolom TIME menggunakan angka maupun string.

YEAR[(2|4)]
Untuk data tahun baik dengan format 2 digit maupun 4 digit (default). Nilai yang diizinkan adalah 1901-2155, bila menggunakan 4 digit format dan 1970-2069 bila menggunakan 2 digit format. MySQL menampilkan nilai YEAR dalam format YYYY dan mengizinkan Anda mengisinya dengan data string maupun numerik.

Ini adalah akhir artikel bagian pertama dari saya, dan nantikan lanjutan artikel ini di Benpinter.net atau milis benpinter di yahoogroups.com

14 Responses to Tutorial Mengolah Data Tanggal dan Waktu di MySql

  1. anggi says:

    mas aris yth,

    saya lagi belajar pemograman php-mysql.
    saya menemukan kendala bagaimana cara membuat query untuk menghitung umur.
    misalnya saya punya tabel barang yg salah satu fieldnya adalah tanggal_masuk dengan type date. kemudian saya mau menghitung berapa bari barang itu berada. maksudnya saya saya nmau mendapatkan hasil berapa hari dari tanggal hari ini ( atau hasil input ) di KURANGI tanggal yg ada dalam data. sehingga hasilnya dalam bentuk angka hari.
    mohon bantuannya.

    terima kasih sebelumnya.

  2. ananta bayu says:

    mas aris yth
    salam kenal…
    saya ada kesulitan nih….
    mau tanya tentang format date di MYSQL.
    secara umum format defaultnya adalah “yyyy-mm-dd”. pertanyaan saya :
    1. bagaimana merubah supaya format menjadi “dd-mm-yyyy” ?
    2. bagaimana agar dari buku tamu menyimpan format date ke mysql, maksudnya gini : saya kan membuat buku tamu dengan format PHP, kemudian ada fasilitas mengisi tanggal lahir, nah saya pengennya format date itu berbentuk “dd-mm-yyyy”, bagaimana sintaknya….
    mohon penjelasan….atau konfirmasi ke email saya….soalnya mendadak banget….
    terima kasih atas waktu dan penjelasannya…
    salam
    ananta bayu

  3. anton says:

    Salam kenal…
    mo nanya neh?kmrn kan saya coba buat buku tamu pakai php 2 mysql. tp pas di isi kode2 html kok jd ga karu2an ya?(di deface gitu maksudnya) ada solusinya ga?

  4. aris says:

    ini saya berikan code php untuk membuat format tanggal, dan mohon maaf terlambat sekali membalasnya … hhehehe:)

    function formatDate($strDate){
    $strYear = substr($strDate, 0, 4);
    $strMonth = substr($strDate, 5, 2);
    $strDate = substr($strDate, 8, 2);

    switch ($strMonth) {
    case 1 :
    $strMonth = “Januari”;
    break;
    case 2 :
    $strMonth = “Februari”;
    break;
    case 3 :
    $strMonth = “Maret”;
    break;
    case 4 :
    $strMonth = “April”;
    break;
    case 5 :
    $strMonth = “Mei”;
    break;
    case 6 :
    $strMonth = “Juni”;
    break;
    case 7 :
    $strMonth = “Juli”;
    break;
    case 8 :
    $strMonth = “Agustus”;
    break;
    case 9 :
    $strMonth = “September”;
    break;
    case 10 :
    $strMonth = “Oktober”;
    break;
    case 11 :
    $strMonth = “November”;
    break;
    case 12 :
    $strMonth = “Desember”;
    break;
    }

    return $strDate.” “.$strMonth.”, “.$strYear;
    }

    aris….

  5. purchase xenical online

    news

  6. onggan says:

    salam,
    temen2 help donk.. saya ada mslh nih, saya mau konvert data dari access ke mysql, di access ada data date (dd-mm-yyyy), kok knp ga mo di import ke mysql ya? pdhal saya udah set di mysql dengan type data date. tolong mgkn ada petunjuk harus setting apa.., lsg ke email aja ya, thx bgt loh

  7. lina says:

    mas gmn cara mengambil tanggal hari ini dari sistem secara otomatis tanpa kita input tglnya.

  8. Thanks yaa buat artikelnya

    Dari :http://www.sampara.com

  9. As says:

    Temans,, tolongin dong,, aku lg bljr bqn web lokal (mysql+php) mau bqn field yg pake datetime tapi bisa pake perhitungnnya :,, contoh
    jamkeluar-jammasuk.

    kucoba kok hasil perhitungnnya jadi kayak perhitungan tipe integer.

  10. minoz says:

    bantuin dunk
    masa save an timestamp na ga sesuai tgl n waktu na
    itw apa na yg slah ya ???

  11. Ismet Maulana says:

    bantu yah , sorry brother kalo mencetak waktu dan tanggal secara otomatis ketika login absen gimana yah brother, terimaksih

  12. Amell says:

    admin yth
    saya membuat table surat permasalan.
    didalamnya mencakup surat masuk dan surat keluar dlm satu baris dan satu tabel .
    hanya tgl surat masuknya diisi terlebih dulu,saat input tgl surat keluar kosong tampilannya kembali tampilan yyyy-mm-dd.
    bagaimana agar saat di edit tgl surat kelurnya tetap bisa dd-mm-yyyy
    terimakasih, mohon bantuannya?(∩_∩)

Leave a reply to ananta bayu Cancel reply