0 của MySQL và một số hàmCode language: SQL [Structured Query Language] [sql]
CREATE TABLE timestamp_n_datetime [ id INT AUTO_INCREMENT PRIMARY KEY, ts TIMESTAMP, dt DATETIME ];
0 hữu íchCode language: SQL [Structured Query Language] [sql]
CREATE TABLE timestamp_n_datetime [ id INT AUTO_INCREMENT PRIMARY KEY, ts TIMESTAMP, dt DATETIME ];
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-DDDATETIME
- định dạng. YYYY-MM-DD HH. MI. SSTIMESTAMP
- định dạng. YYYY-MM-DD HH. MI. SSYEAR
- đị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
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