Hướng dẫn how do i auto populate a date in mysql? - làm cách nào để tự động điền ngày vào mysql?

Tôi có một bảng nơi tôi có cột date. Có cách nào để MySQL tự động điền vào trường này bất cứ khi nào tôi chèn một sổ đăng ký mới với ngày hiện tại không? Hoặc điều này được thực hiện tự động theo mặc định?

P.S .: Tôi đang sử dụng phpmyadmin

Hướng dẫn how do i auto populate a date in mysql? - làm cách nào để tự động điền ngày vào mysql?

Đã hỏi ngày 20 tháng 1 năm 2014 lúc 5:01Jan 20, 2014 at 5:01

Hướng dẫn how do i auto populate a date in mysql? - làm cách nào để tự động điền ngày vào mysql?

2

Mặc dù đó là một bài viết cũ, có lẽ hình ảnh này sẽ giúp ích vì nó rõ ràng hơn: (đối với người dùng phpmyadmin)

Hướng dẫn how do i auto populate a date in mysql? - làm cách nào để tự động điền ngày vào mysql?

Cấu hình này đặt trường đó có giá trị như:

2015-12-11 07:50:47

PS: Lưu ý rằng dấu thời gian sẽ đặt thời gian của máy chủ của bạn !! .

Ngoài ra, nếu bạn đã có một "ngày được tạo", bạn có thể cần một cột khác cập nhật ngày sửa đổi bất cứ khi nào có bản cập nhật: bạn chỉ cần đặt trên bản cập nhật Stamp Time Inst trong trường thuộc tính.on update CURRENT TIME STAMP in Attributes Field.

Đã sẵn sàng để "quẩy!

Hướng dẫn how do i auto populate a date in mysql? - làm cách nào để tự động điền ngày vào mysql?

Đã trả lời ngày 11 tháng 12 năm 2015 lúc 19:41Dec 11, 2015 at 19:41

Hướng dẫn how do i auto populate a date in mysql? - làm cách nào để tự động điền ngày vào mysql?

Đặt mặc định trong truy vấn MySQL của bạn

CURRENT_TIMESTAMP

Đã trả lời ngày 20 tháng 1 năm 2014 lúc 5:06Jan 20, 2014 at 5:06

Hướng dẫn how do i auto populate a date in mysql? - làm cách nào để tự động điền ngày vào mysql?

1

Bạn phải sử dụng

bây giờ()

chức năng nơi bạn muốn điền vào thời gian hiện tại.

i.e.:

INSERT INTO  user_rights (`user_id`,`right`,`group_id`,`created_date`) VALUES ( '42',  '160',  '1',  now());

Benmorel

32.9K48 Huy hiệu vàng173 Huy hiệu bạc307 Huy hiệu đồng48 gold badges173 silver badges307 bronze badges

Đã trả lời ngày 20 tháng 1 năm 2014 lúc 5:08Jan 20, 2014 at 5:08

murtaza.webdevmurtaza.webdevmurtaza.webdev

3,4234 Huy hiệu vàng20 Huy hiệu bạc32 Huy hiệu Đồng4 gold badges20 silver badges32 bronze badges

Tôi nhận ra đây có thể không phải là một câu trả lời trực tiếp cho câu hỏi nhưng tôi tin rằng đây là giải pháp có thể sử dụng được nhất.

Tôi thực sự khuyên bạn nên sử dụng một loại dữ liệu DateTime hoặc Timestamp cho cột trong câu hỏi. Nếu bạn đang sử dụng phiên bản MYSQL khá hiện tại, MySQL sẽ thực hiện công việc cho bạn.
If you are utilizing a fairly current version of MySQL, MySQL will do the work for you.

Chi tiết: Để rất rõ ràng, kể từ 5.6.5, đối với cả DataTates Timestamp & DateTime, bạn có thể làm như sau::
To be very clear, as of 5.6.5, for both the TIMESTAMP & DATETIME datatypes, you can do the following:

  1. Đặt giá trị mặc định của ngày & giờ hiện tại (sử dụng bây giờ () hoặc một trong các bí danh của nó như current_timestamp) Điều này có nghĩa là mỗi khi bạn chèn một hàng mới vào bảng này, một cột Datetamp hoặc DateTime với mặc định này sẽ nhận được ngày hiện tại và thời gian
    This means every time you insert a new row into this table a TIMESTAMP or DATETIME column with this default will get the current date and time
  2. Đặt một ràng buộc cập nhật sẽ cập nhật một cột lên ngày & giờ hiện tại khi, (bạn đoán nó), hàng được cập nhật

Đây là cách: Một ví dụ trong câu lệnh CREATE TABLE:
An Example in a CREATE TABLE statement:

CREATE TABLE t1 (
ts1 DATETIME ON UPDATE CURRENT_TIMESTAMP
,ts2 DATETIME DEFAULT NOW()
);

Xin lưu ý rằng DateTime có thể được thay thế bằng dấu thời gian cho chức năng hiệu quả tương tự. Ngoài ra, tôi đề xuất việc sử dụng kiểu dữ liệu DateTime qua Timestamp vì DateTime có phạm vi ngày lớn hơn nhiều mà nó có thể hỗ trợ. Điều đáng nói là dấu thời gian nhỏ hơn đối với một vài trường hợp quan trọng. Để biết thêm chi tiết, vui lòng đọc câu trả lời của tôi ở đây: https://stackoverflow.com/a/26117532/1748266
Additionally I suggest the use of the DATETIME data type over TIMESTAMP as DATETIME has a much larger range of dates it can support. It's worth mentioning that TIMESTAMP is smaller for those few cases that matters.
For more details please read my answer here: https://stackoverflow.com/a/26117532/1748266

Đã trả lời ngày 21 tháng 5 năm 2016 lúc 1:47May 21, 2016 at 1:47

Hướng dẫn how do i auto populate a date in mysql? - làm cách nào để tự động điền ngày vào mysql?

MermerMER

1.34019 huy hiệu bạc25 Huy hiệu đồng19 silver badges25 bronze badges

Tôi đã thêm nó vào bảng của tôi và nó hoạt động

ALTER TABLE Medewerkers ADD med_created TIMESTAMP DEFAULT now(); 

Khi bạn chèn dữ liệu vào bản ghi của mình, nó sẽ tự động cập nhật

Đã trả lời ngày 30 tháng 8 năm 2019 lúc 21:40Aug 30, 2019 at 21:40

Thật không may, MySQL không cho phép chỉ định các giá trị khác ngoài các hằng số là mặc định cho các cột khác với TIMESTAMPs.

Đây là một tính năng có sẵn trong các phiên bản MySQL 8.0+, nhưng đối với các phiên bản cũ hơn, giải pháp duy nhất cho cơ sở dữ liệu được xác định mặc định sẽ là sử dụng trình kích hoạt.

Đã trả lời ngày 20 tháng 1 năm 2014 lúc 5:05Jan 20, 2014 at 5:05

Ben Siverben SiverBen Siver

2.6981 Huy hiệu vàng25 Huy hiệu bạc42 Huy hiệu đồng1 gold badge25 silver badges42 bronze badges

3

Bạn có thể làm một cái gì đó như thế này từ màn hình SQL

ALTER TABLE `table_name` CHANGE `created_at` `created_at` TIMESTAMP NOT NULL 

Đã trả lời ngày 11 tháng 2 năm 2016 lúc 0:15Feb 11, 2016 at 0:15

MzaragozamzaragozaMZaragoza

9,9989 Huy hiệu vàng66 Huy hiệu bạc109 Huy hiệu đồng9 gold badges66 silver badges109 bronze badges