Ikhtisar

Jenis field tanggal dan waktu

Jenis field tanggal dan waktu meliputi:

  • Tanggal dan waktu (dengan zona waktu) - Tanggal dan waktu akan dikonversi secara konsisten ke waktu UTC (Waktu Universal Terkoordinasi), dan dikonversi ke zona waktu yang sesuai jika diperlukan;
  • Tanggal dan waktu (tanpa zona waktu) - Menyimpan tanggal dan waktu tanpa informasi zona waktu;
  • Tanggal (tanpa waktu) - Hanya menyimpan tanggal, tanpa bagian waktu;
  • Waktu - Hanya menyimpan waktu, tanpa bagian tanggal;
  • Stempel waktu Unix - Disimpan sebagai stempel waktu Unix, biasanya berupa jumlah detik sejak 1 Januari 1970.

Contoh setiap jenis field terkait tanggal:

Jenis fieldNilai contohDeskripsi
Tanggal dan waktu (dengan zona waktu)2024-08-24T07:30:00.000ZTanggal dan waktu dikonversi secara konsisten ke waktu UTC (Waktu Universal Terkoordinasi)
Tanggal dan waktu (tanpa zona waktu)2024-08-24 15:30:00Tanggal dan waktu tanpa zona waktu, hanya mencatat tanggal dan waktu
Tanggal (tanpa waktu)2024-08-24Hanya menyimpan informasi tanggal, tanpa waktu
Waktu15:30:00Hanya menyimpan informasi waktu, tanpa tanggal
Stempel waktu Unix1724437800Jumlah detik yang telah berlalu sejak 1970-01-01 00:00:00 waktu UTC

Perbandingan sumber data

Tabel perbandingan NocoBase, MySQL, dan PostgreSQL:

Jenis fieldNocoBaseMySQLPostgreSQL
Tanggal dan waktu (dengan zona waktu)Datetime with timezoneTIMESTAMP
DATETIME
TIMESTAMP WITH TIME ZONE
Tanggal dan waktu (tanpa zona waktu)Datetime without timezoneDATETIMETIMESTAMP WITHOUT TIME ZONE
Tanggal (tanpa waktu)DateDATEDATE
WaktuTimeTIMETIME WITHOUT TIME ZONE
Stempel waktu UnixUnix timestampINTEGER
BIGINT
INTEGER
BIGINT
Waktu (dengan zona waktu)--TIME WITH TIME ZONE

Catatan:

  • Rentang data TIMESTAMP MySQL berada di antara waktu UTC 1970-01-01 00:00:01 ~ 2038-01-19 03:14:07. Jika berada di luar rentang tersebut, disarankan menggunakan DATETIME atau BIGINT untuk menyimpan stempel waktu Unix.

Alur pemrosesan penyimpanan tanggal dan waktu

Dengan zona waktu

Meliputi 日期时间(不含时区) dan Unix 时间戳

20240824191933

Catatan:

  • Untuk mendukung rentang data yang lebih luas, field tanggal dan waktu (dengan zona waktu) NocoBase di database MySQL menggunakan DATETIME. Nilai tanggal yang disimpan adalah nilai setelah dikonversi berdasarkan variabel lingkungan TZ di sisi server. Jika variabel lingkungan TZ berubah, nilai tanggal dan waktu yang disimpan juga akan berubah.
  • Perbedaan zona waktu antara waktu UTC dan waktu lokal dapat menyebabkan kesalahpahaman jika nilai asli UTC ditampilkan secara langsung.

Tanpa zona waktu

20240824185600

UTC

UTC (Waktu Universal Terkoordinasi, Coordinated Universal Time) adalah standar waktu global yang digunakan untuk mengoordinasikan dan menyelaraskan waktu di seluruh dunia. UTC didasarkan pada standar waktu berpresisi tinggi dari jam atom dan disinkronkan dengan rotasi bumi.

Perbedaan zona waktu antara waktu UTC dan waktu lokal dapat menyebabkan kesalahpahaman jika nilai asli UTC ditampilkan secara langsung, misalnya:

Zona waktuTanggal dan waktu
UTC2024-08-24T07:30:00.000Z
Zona timur 8 (UTC+8)2024-08-24 15:30:00
Zona timur 5 (UTC+5)2024-08-24 12:30:00
Zona barat 5 (UTC-5)2024-08-24 02:30:00
Waktu Inggris (UTC+0)2024-08-24 07:30:00
Waktu Tengah (UTC-6)2024-08-23 01:30:00

Semua waktu di atas menunjukkan satu waktu yang sama; perbedaannya hanya terletak pada zona waktunya.