Apakah ada fungsi MySQL yang dapat digunakan untuk mengubah cap waktu Unix menjadi tanggal yang dapat dibaca manusia? Saya memiliki satu bidang tempat saya menyimpan waktu Unix dan sekarang saya ingin menambahkan bidang lain untuk tanggal yang dapat dibaca manusia.
mysql
unix-timestamp
Raja Julien
sumber
sumber
Jawaban:
Gunakan
FROM_UNIXTIME()
:Lihat juga: Dokumentasi MySQL pada
FROM_UNIXTIME()
.sumber
from_unixtime
: dev.mysql.com/doc/refman/5.1/en/…TO_UNIXTIME
, tetapi sebaliknyaUNIX_TIMESTAMP
.Apa yang hilang dari jawaban lain (pada tulisan ini) dan tidak langsung jelas adalah bahwa
from_unixtime
dapat mengambil parameter kedua untuk menentukan format seperti:sumber
Saya pikir apa yang Anda cari
FROM_UNIXTIME()
sumber
Perlu cap waktu unix di zona waktu tertentu?
Berikut ini satu liner jika Anda memiliki akses cepat ke klien mysql:
Ganti
'MST'
dengan zona waktu yang Anda inginkan. Saya tinggal di Arizona 🌵 dengan demikian konversi dari UTC ke MST.sumber
Mengapa repot-repot menyimpan bidang sebagai dapat dibaca? Hanya kita
AS
EDIT: Maaf, kami menyimpan semuanya dalam milidetik bukan dalam hitungan detik. Memperbaikinya.
sumber
Anda dapat menggunakan fungsi DATE_FORMAT. Inilah halaman dengan contoh, dan pola yang dapat Anda gunakan untuk memilih komponen tanggal yang berbeda.
sumber
Cara mudah dan sederhana:
select from_unixtime(column_name, '%Y-%m-%d') from table_name
sumber
Karena saya menemukan pertanyaan ini tidak disadari, bahwa mysql selalu menyimpan waktu di bidang timestamp di UTC tetapi akan ditampilkan (mis. Phpmyadmin) di zona waktu lokal saya ingin menambahkan temuan saya.
Saya memiliki bidang last_modified yang diperbarui secara otomatis, didefinisikan sebagai:
Melihatnya dengan phpmyadmin, sepertinya itu adalah waktu setempat, secara internal itu adalah UTC
Di sembarang konstelasi, UNIX_TIMESTAMP dan 'sebagai UTC' selalu ditampilkan dalam waktu UTC.
Jalankan ini dua kali, pertama tanpa mengatur time_zone.
sumber