Rumah  >  Artikel  >  pangkalan data  >  Memahami cap masa MySQL: fungsi, ciri dan senario aplikasi

Memahami cap masa MySQL: fungsi, ciri dan senario aplikasi

WBOY
WBOYasal
2024-03-15 16:36:031058semak imbas

Memahami cap masa MySQL: fungsi, ciri dan senario aplikasi

MySQL timestamp ialah jenis data yang sangat penting, yang boleh menyimpan tarikh, masa atau tarikh tambah masa. Dalam proses pembangunan sebenar, penggunaan cap masa yang rasional boleh meningkatkan kecekapan operasi pangkalan data dan memudahkan pertanyaan dan pengiraan berkaitan masa. Artikel ini akan membincangkan fungsi, ciri dan senario aplikasi cap waktu MySQL, dan menerangkannya dengan contoh kod khusus.

1. Fungsi dan ciri cap waktu MySQL

Terdapat dua jenis cap masa dalam MySQL, satu ialah TIMESTAMP dan satu lagi ialah DATETIME. Ia mempunyai fungsi dan ciri yang berbeza, yang diperkenalkan di bawah: TIMESTAMP,另一种是 DATETIME。它们有不同的功能和特性,下面分别介绍:

  1. TIMESTAMP

    • 存储范围为从 1970-01-01 00:00:01 UTC 到 2038-01-19 03:14:07 UTC。
    • 存储的时间将会根据时区转换为UTC时间进行存储。
    • 当插入一条新数据时,TIMESTAMP 列会自动更新为当前的时间戳。
  2. DATETIME

    • 存储范围为 1000-01-01 00:00:009999-12-31 23:59:59
    • 不会根据时区进行转换,存储的是实际插入的日期时间。
    • 插入数据时不会自动更新为当前时间,需要手动设置。

二、应用场景

  1. 记录数据的创建时间和更新时间:

    CREATE TABLE example_table (
        id INT PRIMARY KEY AUTO_INCREMENT,
        data VARCHAR(255),
        created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
        updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    );

    在这个示例中,我们创建了一个表,记录了数据的创建时间和更新时间。通过设置 created_at 列为 DEFAULT CURRENT_TIMESTAMP,在插入数据时自动记录当前时间戳;而设置 updated_at 列为 DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

    1. TIMESTAMP:
      • Julat storan adalah dari 1970-01-01 00:00:01 UTC hingga <code>2038-01-19 03:14:07 UTC.

        Masa yang disimpan akan ditukar kepada waktu UTC mengikut zon waktu untuk penyimpanan.

    2. Apabila sekeping data baharu dimasukkan, lajur TIMESTAMP akan dikemas kini secara automatik kepada cap masa semasa.
    3. DATETIME:

      • Julat storan ialah 1000-01-01 00:00:00 hingga 9999-12 - 31 23:59:59.

      Ia tidak akan ditukar mengikut zon waktu, dan tarikh dan masa yang dimasukkan sebenar disimpan.

      Apabila memasukkan data, ia tidak akan dikemas kini secara automatik mengikut masa semasa dan perlu ditetapkan secara manual.

      🎜🎜🎜 2. Senario aplikasi 🎜
        🎜🎜Rekod masa penciptaan dan masa kemas kini data: 🎜
        SELECT * FROM example_table WHERE created_at >= '2022-01-01 00:00:00' AND created_at <= '2022-12-31 23:59:59';
        🎜Dalam contoh ini, kami mencipta jadual untuk merekodkan masa penciptaan dan masa mengemas kini data . Dengan menetapkan lajur created_at kepada DEFAULT CURRENT_TIMESTAMP, cap masa semasa direkodkan secara automatik apabila memasukkan data dan menetapkan lajur updated_at kepada DEFAULT CURRENT_TIMESTAMP PADA KEMASKINI CURRENT_TIMESTAMP, cap masa dikemas kini apabila data dikemas kini. 🎜🎜🎜🎜Data pertanyaan dalam julat masa yang ditentukan: 🎜
        SELECT TIMEDIFF('2022-01-01 12:00:00', '2022-01-01 08:00:00');
        🎜Pernyataan pertanyaan ini akan mengembalikan rekod data yang dibuat pada tahun 2022. Pertanyaan julat masa boleh dilakukan dengan mudah menggunakan cap masa. 🎜🎜🎜🎜Kira selang masa: 🎜rrreee🎜Pernyataan pertanyaan ini akan mengembalikan selang masa antara dua cap waktu, yang boleh digunakan untuk mengira perbezaan antara dua tarikh dan masa. 🎜🎜🎜🎜3. Summary🎜🎜MySQL timestamp ialah jenis data yang sangat praktikal yang boleh membantu kami merekodkan maklumat masa data, melakukan pertanyaan julat masa, mengira selang masa dan operasi lain. Penggunaan cap masa yang munasabah boleh meningkatkan kecekapan operasi pangkalan data dan memudahkan pengurusan dan analisis data. Saya harap artikel ini akan membantu pembaca memahami fungsi, ciri dan senario aplikasi cap waktu MySQL. 🎜

      Atas ialah kandungan terperinci Memahami cap masa MySQL: fungsi, ciri dan senario aplikasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

      Kenyataan:
      Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn