CHÈN ngày giờ MySQL

Trong hướng dẫn này, bạn đã tìm hiểu về kiểu dữ liệu

CREATE TABLE timestamp_n_datetime ( id INT AUTO_INCREMENT PRIMARY KEY, ts TIMESTAMP, dt DATETIME );

Code language: SQL (Structured Query Language) (sql)
0 của MySQL và một số hàm

CREATE TABLE timestamp_n_datetime ( id INT AUTO_INCREMENT PRIMARY KEY, ts TIMESTAMP, dt DATETIME );

Code language: SQL (Structured Query Language) (sql)
0 hữu ích

Phần khó khăn nhất khi làm việc với ngày tháng là đảm bảo rằng định dạng của ngày bạn đang cố chèn khớp với định dạng của cột ngày trong cơ sở dữ liệu

Miễn là dữ liệu của bạn chỉ chứa phần ngày, các truy vấn của bạn sẽ hoạt động như mong đợi. Tuy nhiên, nếu có một phần thời gian, nó sẽ phức tạp hơn


Các kiểu dữ liệu ngày của MySQL

MySQL đi kèm với các kiểu dữ liệu sau để lưu trữ ngày hoặc giá trị ngày/giờ trong cơ sở dữ liệu

  • DATE - định dạng YYYY-MM-DD
  • DATETIME - định dạng. YYYY-MM-DD HH. MI. SS
  • TIMESTAMP - định dạng. YYYY-MM-DD HH. MI. SS
  • YEAR - định dạng YYYY hoặc YY

Ghi chú. Kiểu dữ liệu ngày được đặt cho một cột khi bạn tạo một bảng mới trong cơ sở dữ liệu của mình


Làm việc với Ngày

Nhìn vào bảng sau

Bảng đơn hàng

OrderIdProductNameOrderDate1Geitost2008-11-112Camembert Pierrot2008-11-093Mozzarella di Giovanni2008-11-114Mascarpone Fabioli2008-10-29

Bây giờ chúng tôi muốn chọn các bản ghi có OrderDate là "2008-11-11" từ bảng trên

Chúng tôi sử dụng câu lệnh SELECT sau đây

CHỌN * TỪ Đơn đặt hàng WHERE OrderDate='2008-11-11'

Tập kết quả sẽ trông như thế này

OrderIdProductNameOrderDate1Geitost2008-11-113Mozzarella di Giovanni2008-11-11

Ghi chú. Hai ngày có thể dễ dàng được so sánh nếu không có thành phần thời gian liên quan

Bây giờ, giả sử rằng bảng "Đơn hàng" trông như thế này (chú ý thành phần thời gian được thêm vào trong cột "Ngày đặt hàng")

OrderIdProductNameOrderDate1Geitost2008-11-11 13. 23. 442Camembert Pierrot2008-11-09 15. 45. 213 Mozzarella di Giovanni 2008-11-11 11. 12. 014Mascarpone Fabioli2008-10-29 14. 56. 59

Nếu chúng ta sử dụng cùng câu lệnh SELECT như trên

CHỌN * TỪ Đơn đặt hàng WHERE OrderDate='2008-11-11'

chúng tôi sẽ không nhận được kết quả. Điều này là do truy vấn chỉ tìm ngày không có phần thời gian

Mẹo. Để giữ cho truy vấn của bạn đơn giản và dễ bảo trì, không sử dụng thành phần thời gian trong ngày của bạn, trừ khi bạn phải

Sử dụng cơ sở dữ liệu là bắt buộc để tạo một trang web hiện đại năng động. MySQL đã được thiết lập như một nền tảng cơ sở dữ liệu ưa thích do chất lượng không thể chối cãi của máy chủ cơ sở dữ liệu này. Chỉ định ngày nhập nội dung có tầm quan trọng hàng đầu đối với cấu trúc và sắp xếp theo trình tự thời gian của các bài viết, bài đăng và trả lời trong một trang web động. MySQL đi kèm với một số loại dữ liệu để lưu trữ ngày tháng trong hệ thống cơ sở dữ liệu của nó. NGÀY, DẤU THỜI GIAN, NGÀY GIỜ và NĂM

Cách sử dụng câu lệnh DATE

Cách mặc định để lưu trữ một ngày trong cơ sở dữ liệu MySQL là sử dụng DATE. Định dạng đúng của NGÀY là. YYYY-MM-DD. Nếu bạn cố gắng nhập một ngày ở định dạng khác với định dạng Năm-Tháng-Ngày, nó có thể hoạt động nhưng sẽ không lưu trữ ngày như bạn mong đợi

Để chạy lệnh Chèn MySQL và thêm ngày hiện tại vào bảng của bạn, bạn có thể sử dụng hàm tích hợp sẵn của MySQL CURDATE() trong truy vấn của mình

Một ví dụ về cách Chèn một ngày trong MySQL bằng CURDATE

$query_auto = "CHÈN VÀO tên bảng (col_name, col_date) GIÁ TRỊ ('NGÀY. Tự động CURDATE()', CURDATE() )";

Ngoài ra, bạn có thể chạy truy vấn để đặt ngày theo cách thủ công

Một ví dụ về cách chèn thủ công một ngày trong MySQL

$query_manual = "CHÈN VÀO tên bảng (col_name, col_date) GIÁ TRỊ ('NGÀY. Ngày thủ công', '2008-7-04')";

Tất cả các truy vấn này có thể được chạy bằng cách sử dụng dòng lệnh, tập lệnh (được viết bằng PHP, Perl, Python, v.v. ) hoặc thông qua giao diện PHPMyAdmin được chèn trong Bảng điều khiển lưu trữ web phức tạp của NTC Hosting

Ngoài ra, có một câu lệnh cho phép bạn chỉ đặt NĂM của một sự kiện. Câu lệnh Năm sử dụng định dạng YYYY và có phạm vi từ 1901 đến 2155 (đối với những năm nằm ngoài phạm vi này, bạn cần sử dụng câu lệnh NGÀY)

Chèn một ngày trong MySQL bằng NĂM

Bây giờ, hãy kiểm tra xem câu lệnh NĂM hoạt động như thế nào trong một truy vấn. Đối với ví dụ của chúng tôi, chúng tôi sẽ sử dụng lại CURDATE(). Như chúng ta đã đề cập ở trên, CURDATE() cung cấp nhiều thông tin hơn là chỉ năm, nhưng khi chúng ta sử dụng câu lệnh YEAR thì tất cả thông tin ngày, ngoài năm, đều bị bỏ qua

Một ví dụ về cách Chèn NĂM trong MySQL bằng CURDATE

CHÈN VÀO danh bạ (col_name, col_date) GIÁ TRỊ ('YEAR. Tự động CURDATE()', CURDATE() )";

Đặt ngày trong MySQL bằng DATETIME

Sử dụng DATETIME, bạn có thể lưu trữ cả ngày và giờ. Định dạng của nó là YYYY-MM-DD HH. mm. SS. Sử dụng câu lệnh này, bạn có thể lưu trữ đầu ra cho cả câu lệnh NGÀY và GIỜ. Ngoài ra, bạn có thể chọn chỉ lưu trữ thông tin ngày, nhưng bạn không thể chỉ lưu trữ thời gian

Một ví dụ về cách sử dụng DATETIME

CHÈN VÀO danh bạ (col_name, col_date) GIÁ TRỊ ('DATETIME. Tự động CURDATE()', CURDATE() )";

Cách chèn ngày tháng trong PHPMyAdmin

Như chúng tôi đã đề cập ở trên, có một số cách để lưu trữ một ngày. Một trong những phương pháp đơn giản nhất là sử dụng công cụ quản lý cơ sở dữ liệu như PHPMyAdmin. Với giao diện người dùng đồ họa và tập hợp các tính năng tích hợp sẵn, PHPMyAdmin giúp việc quản lý cơ sở dữ liệu trở nên dễ dàng. Đó là lý do tại sao chúng tôi, tại NTC Hosting, đã chọn công cụ quản lý web PHPMyAdmin và cung cấp công cụ này trong tất cả các gói dịch vụ lưu trữ web của chúng tôi

Để thêm thông tin ngày tháng trong PHPMyAdmin, bạn cần đăng nhập vào giao diện PHPMyAdmin rồi vào tab 'Chèn'. Sau đó, bạn có thể chọn các hàm Chèn thích hợp cho từng trường bằng cách sử dụng danh sách thả xuống trong cột hàm

CHÈN ngày giờ MySQL

Nếu bạn muốn tìm hiểu thêm về cách sử dụng hàm chèn trong PHPMyAdmin, vui lòng truy cập bài viết Chèn MySQL và PHPMyAdmin

Đặt ngày trong MySQL bằng tập lệnh PHP

Sử dụng tập lệnh PHP để đặt ngày trong MySQL là rất phổ biến. Để sử dụng phương pháp này, hãy chạy truy vấn SQL trong tập lệnh PHP. Phương pháp này được sử dụng hàng ngày bởi một số tập lệnh PHP rất đơn giản và bởi các ứng dụng lớn dựa trên PHP hiện đại. Hãy xem nó trông như thế nào

Một ví dụ về tập lệnh PHP đặt ngày trong MySQL theo cách thủ công

$query_date = "CHÈN VÀO tên bảng (col_name, col_date) GIÁ TRỊ ('NGÀY. Manual Date', '2008-7-04')”;
mysql_query($query_date) hoặc die(mysql_error());
?>

Ngoài ra, có một tùy chọn để đặt ngày tự động

Một ví dụ về tập lệnh PHP đặt ngày trong MySQL theo cách thủ công

$query_date = "CHÈN VÀO tên bảng (col_name, col_date) GIÁ TRỊ ('NGÀY. Tự động CURDATE()', CURDATE() )”;
mysql_query($query_date) hoặc die(mysql_error());
?>

Như bạn có thể giả sử, bạn không chỉ có thể sử dụng các câu lệnh NGÀY mà còn cả các câu lệnh NĂM và DATETIME trong PHP - cú pháp tương tự

Làm cách nào để vượt qua datetime trong truy vấn MySQL?

MySQL đi kèm với các kiểu dữ liệu sau để lưu trữ ngày hoặc giá trị ngày/giờ trong cơ sở dữ liệu. .
NGÀY - định dạng YYYY-MM-DD
DATETIME - định dạng. YYYY-MM-DD HH. MI. SS
DẤU THỜI GIAN - định dạng. YYYY-MM-DD HH. MI. SS
NĂM - định dạng YYYY hoặc YY

Làm cách nào để tự động chèn ngày hiện tại vào MySQL?

Bạn có thể sử dụng now() với tính năng tự động điền mặc định và ngày giờ hiện tại cho việc này. Sau này, bạn có thể trích xuất phần ngày tháng bằng hàm date(). Hãy để chúng tôi đặt giá trị mặc định với một số ngày.

Làm cách nào để chèn ngày được định dạng trong MySQL?

Cách mặc định để lưu trữ ngày trong cơ sở dữ liệu MySQL là sử dụng DATE. Định dạng đúng của NGÀY là. YYYY-MM-DD . Nếu bạn cố gắng nhập một ngày ở định dạng khác với định dạng Năm-Tháng-Ngày, nó có thể hoạt động nhưng sẽ không lưu trữ ngày như bạn mong đợi.

Làm cách nào để chèn ngày giờ vào MySQL bằng Python?

Để chèn ngày vào cơ sở dữ liệu MySQL, bạn cần có một cột Loại ngày hoặc ngày giờ trong bảng của mình. Khi bạn đã có điều đó, bạn sẽ cần chuyển đổi ngày của mình thành định dạng chuỗi trước khi chèn nó vào cơ sở dữ liệu của mình. Để làm điều này, bạn có thể sử dụng chức năng định dạng strftime của mô-đun datetime .