Artikel kali ini kita masih membahas seputar tipe data apa saja yang ada pada MySQL. Pada artikel sebelumnya kita sudah membahas tentang tipe data string pada MySQL, tipe data decimal, dan tipe data integer pada MySQL.
Tipe data yang selanjutnya yang tersedia dalam MySQL adalah tipe data date (tanggal). Tipe data ini digunakan untuk menyimpan data yang berkaitan dengan tanggal dan waktu. Tipe data date ini terdiri dari DATE, TIME, DATETIME, TIMESTAMP, dan YEAR.
Â
1. Tipe Data Date
Tipe data date ini digunakan untuk menyimpan data tanggal kedalam database. Formatnya tahun-bulan-tanggal.
Contoh : 2019-09-13.
Â
Â
2. Tipe Data Datetime
Tipe data datetime digunakan untuk menyimpan data tanggal sekaligus waktu atau jam kedalam database. Formatnya diawali dengan tanggal seperti date kemudian jam:,menit:detik.
Contoh: 2019-09-13 9:26:37.
Â
3. Tipe Data Time
Tipe data date time digunakan untuk melakukan penyimpanan data waktu kedatabase. Formatnya yaitu jam:menit:detik
Contoh: 9:28:29
Â
4. Tipe Data Year
Tipe data year ini digunakan untuk menyimpan data tahun.
Contoh: 2019
Lalu apa saja perbedaan dari tipe data date yang tasdi sudah kita jelaskan diatas? Yuk mari simak sama-sama perbedaan dari masing-masing tipe data tersebut.
Misalnya jika kita hanya ingin menginputkan atau menyimpan data tahun pada database, maka kita bisa menggunakan tipe data “year†saja. Atau mungkin sebaliknya, jika kita ingin menyimpan data tanggal pada database, maka kita bisa menggunakan tipe data “dateâ€. Atau mungkin jika kita ingin menyimpan data tanggal sekaligus waktu atau jam kedalam database, maka kita bisa menggunakan tipe data “datetimeâ€.
Perbedaan dari tipe data tersebut terletak pada format penyimpanan datanya. Untuk lebih jelasnya, bisa kalian lihat pada tabel berikut:
Tipe Data | Jangkauan | Ukuran | Zero Value |
DATE | 1000-01-01 Sampai 9999-12-31 | 3 Byte | 0000-00-00 |
DATETIME | 1000-01-01 00:00:00 Sampai 2038-01-18 22:14:07 | 8 Byte | 0000-00-00 00:00:00 |
TIMESTAMP | 1970-01-01 00:00:00 Sampai 2038-01-18 22:14:07 | 4 Byte | 0000-00-00 00:00:00 |
TIME | 838:59:59 Sampai 838:59:58 | 3 Byte | 00:00:00 |
YEAR (2) | 00 Sampai 99 | 1 Byte | 00 |
YEAR (4) | 1901 Sampai 2155 | 1 Byte | 0000 |
Â
MySQL menyediakan beberapa format yang dapat digunakan untuk input tipe data date, masing-masing untuk tipe data yang bersesuaian.
Tipe Data | Format Input |
DATETIME | 'CCYY-MM-DD hh:mm:ss' |
TIMESTAMP | 'YY-MM-DD hh:mm:ss' |
 | ‘CCYYMMDDhhmmss’ |
 | 'YYMMDDhhmmss' |
 | CCYYMMDDhhmmss |
 | YYMMDDhhmmss |
DATE | 'CCYY-MM-DD’ |
 | 'YY-MM-DD' |
 | 'CCYYMMDD' |
 | 'YYMMDD' |
 | CCYYMMDD |
 | YYMMDD |
TIME | 'hh:mm:ss' |
 | 'hhmmss' |
 | hhmmss |
YEAR | 'CCYY' |
 | 'YY' |
 | CCYY |
 | YY |
- CCYY
input ini digunakan untuk tahun. Dimana YY berupa tahun 2 digit, seperti 98, 78, dan 00. Sedangkan untuk CCYY adalah tahun dengan 4 digit, MySQL mengkonversikannya dengan aturan 70-99 menjadi 1970-1999 dan 00-69 menjadi 2000-2069.
- MM
Bulan dalam format dua digit, seperti 05, 07 dan 12.
- DD
Tanggal dalam format dua digit, seperti 14, 06 dan 30.
- hh
Jam dalam format 2 digit, seperti 06, 09 dan 12.
- Mm
Menit dalam format 2 digit, seperti 15, 45 dan 59.
- Ss
Detik dalam format 2 digit, seperti 10,40 dan 57.
jika MySQL tidak membaca format, atau data tidak tersedia, maka data akan diisi sesuai dengan nilai pada zero value.
Cara Membuat Tabel Dengan Tipe Data Date
Â
Perhatikan pada saat mendefinisikan tipe data YEAR, pada query DESC kita dapat melihat bahwa MySQL memberikan nilai YEAR(4) sebagai nilai default. Kita dapat secara langsung mendefinisikan data tahun dengan 2 digit, namun hal ini tidak disarankan, karena dengan mendefinisikan tahun 26, akan menjadi ambigu, apakah itu tahun 1926 atau 2016, walaupun MySQL memiliki aturan akan menkonversikannya menjadi 2026.
MySQL menyediakan fungsi NOW() untuk memberikan tanggal server pada saat ini, dan kita akan menggunakannya sebagai nilai tiap kolom pada tabel “contoh_dateâ€:
Khusus untuk tipe data YEAR, fungsi dari NOW() akan menghasilkan error, oleh karenanya, pada contoh diatas kita menginputkan manual ‘2019’ untuk kolom YEAR.
Fungsi NOW() ini merupakan sebuah perintah MySQL untuk menerangkan waktu atau tanggal sekarang.
Â
Â