EDIT
Pada MySQL 5.6.4, tipe data TIMESTAMP(n)
menentukan n
(0 hingga 6) digit desimal presisi untuk pecahan detik.
Sebelum MySQL 5.6, MySQL tidak mendukung pecahan detik yang disimpan sebagai bagian dari TIMESTAMP
tipe data.
Referensi:https://dev.mysql.com/doc /refman/5.6/en/fractional-seconds.html
Kita tidak perlu menentukan pengubah panjang pada TIMESTAMP
. Kita cukup menentukan TIMESTAMP
dengan sendirinya.
Namun perlu diketahui bahwa TIMESTAMP
pertama kolom yang ditentukan dalam tabel tunduk pada inisialisasi dan pembaruan otomatis. Misalnya:
create table foo (id int, ts timestamp, val varchar(2));
show create table foo;
CREATE TABLE `foo` (
`id` INT(11) DEFAULT NULL,
`ts` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`val` VARCHAR(2) DEFAULT NULL
)
Apa yang masuk dalam parens setelah tipe data bergantung pada tipe datanya, tetapi untuk beberapa tipe data, ini adalah pengubah panjang.
Untuk beberapa tipe data, pengubah panjang mempengaruhi panjang maksimum nilai yang dapat disimpan. Misalnya, VARCHAR(20)
memungkinkan hingga 20 karakter untuk disimpan. Dan DECIMAL(10,6)
memungkinkan nilai numerik dengan empat digit sebelum titik desimal dan enam setelahnya, dan rentang efektif -9999.9999999 hingga 999.9999999.
Untuk tipe lain, pengubah panjangnya tidak mempengaruhi rentang nilai yang dapat disimpan. Misalnya, INT(4)
dan INT(10)
keduanya bilangan bulat, dan keduanya dapat menyimpan rentang penuh nilai yang diperbolehkan untuk tipe data bilangan bulat.
Apa yang dilakukan pengubah panjang dalam kasus itu hanyalah informasi. Ini pada dasarnya menentukan lebar tampilan yang disarankan. Klien dapat memanfaatkannya untuk menentukan berapa banyak ruang yang harus dipesan pada baris untuk menampilkan nilai dari kolom. Klien tidak harus melakukan itu, tetapi informasi itu tersedia.
EDIT
Pengubah panjang tidak lagi diterima untuk TIMESTAMP
tipe data. (Jika Anda menjalankan versi MySQL yang sangat lama dan diterima, itu akan diabaikan.)