Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Datetime trong SQL là gì? Cách dùng hàm Date trong SQL như thế nào? Hãy cùng Quantrimang.com tìm hiểu nhé!
SQL là ngôn ngữ lập trình không còn xa lạ với nhiều người. Học và thực hành nó không khó một khi bạn đã nắm được các kiến thức cơ bản.
Nhìn chung, làm việc với cơ sở dữ liệu khá đơn giản vì người dùng cần biết các truy vấn và từ khóa cơ bản nên được sử dụng để truy xuất, cập nhật và xóa dữ liệu trong database. SQL cho phép người dùng lưu trữ dữ liệu có cấu trúc (dữ liệu ở dạng hàng và cột) và cung cấp các truy vấn đơn giản để làm việc trên đó. Ở bài viết này, chúng ta sẽ thảo luận về Hàm Ngày Tháng trong SQL.
Hầu hết lập trình viên đều cần làm việc với kiểu dữ liệu date/time trong SQL. Đôi khi, đây có thể là một vấn đề phức tạp, khó giải quyết với lập trình viên SQL còn thiếu kinh nghiệm. Giả sử bạn có bảng Sản phẩm với một cột thời gian (timestamp). Nó tạo ra từng mốc thời gian cho từng đơn hàng của khách. Khi xử lý bảng này, có thể bạn phải đối mặt với những vấn đề sau:
Đây chỉ là một trong số nhiều trường hợp phổ biến khi lập trình bằng SQL nhưng không có định dạng ngày tháng theo yêu cầu. Lúc này, thật khó thay đổi thuộc tính bảng để đáp ứng từng điều kiện. Trong trường hợp này bạn cần biết cách dùng hàm thời gian trong SQL.
Ngày tháng hay Date là một trong số chức năng quan trọng nhất được sử dụng ở SQL, nhưng đối với những người mới tiếp cận ngôn ngữ lập trình này thì hơi khó hiểu vì có nhiều định dạng ngày tháng có thể được lưu trữ trong cơ sở dữ liệu và ở các định dạng khác nhau mà người dùng muốn truy xuất nó theo yêu cầu. Trong SQL, DateTime thường được sử dụng để lưu trữ cả giá trị ngày và giờ tại một thời điểm trong một cột.
Dưới đây là chi tiết các hàm ngày tháng hay date trong SQL.

| STT | HÀM | MÔ TẢ |
| 1 | ADDDATE() | Thêm một khoảng thời gian vào date |
| 2 | ADDTIME() | Thêm một khoảng thời gian vào time |
| 3 | CONVERT_TZ() | Chuyển đổi múi giờ |
| 4 | CURDATE() | Trả về ngày hiện tại |
| 5 | CURRENT_DATE() | Trả về ngày hiện tại |
| 6 | CURRENT_TIME() | Trả về thời gian hiện tại |
| 7 | CURRENT_TIMESTAMP() | Trả về ngày và thời gian hiện tại |
| 8 | CURTIME() | Trả về thời gian hiện tại |
| 9 | DATE_ADD() | Cộng thời gian |
| 10 | DATE_FORMAT() | Định dạng giá trị thời gian |
| 11 | DATE_SUB() | Trừ thời gian |
| 12 | DATE() | Trả về phần ngày của biểu thức thời gian |
| 13 | DATEDIFF() | Trả về chênh lệch giữa hai giá trị thời gian |
| 14 | DAY() | Trả về thứ tự ngày trong tháng (từ 0 đến 31) |
| 15 | DAYNAME() | Trả về tên của ngày trong tuần |
| 16 | DAYOFMONTH() | Trả về thứ tự ngày trong tháng (từ 0 đến 31) |
| 17 | DAYOFWEEK() | Trả về chỉ số ngày trong tuần (1 = Sunday, 2 = Monday... 7 = Saturday) |
| 18 | DAYOFYEAR() | Trả về thứ tự ngày trong năm (từ 1 đến 366) |
| 19 | EXTRACT | Trích giá trị thời gian từ biểu thức ban đầu |
| 20 | FROM_DAYS() | Chuyển đổi một số thành giá trị ngày |
| 21 | FROM_UNIXTIME() | Trả về ngày đại diện cho tham số Unixtime ban đầu |
| 22 | HOUR() | Trả về phần giờ từ biểu thức thời gian |
| 23 | LAST_DAY() | Trả về giá trị tương ứng cho ngày cuối cùng của tháng |
| 24 | LOCALTIME() | Trả về ngày giờ hiện tại |
| 25 | LOCALTIMESTAMP() | Trả về ngày giờ hiện tại |
| 26 | MAKEDATE() | Trả về một ngày với các tham số truyền vào |
| 27 | MAKETIME() | Trả về giá trị thời gian với các tham số truyền vào |
| 28 | MICROSECOND() | Trả về microsecond từ biểu thức ban đầu |
| 29 | MINUTE() | Trả về giá trị phút từ biểu thức thời gian |
| 30 | MONTH() | Trả về giá trị tháng từ biểu thức thời gian |
| 31 | MONTHNAME() | Trả về tên tháng từ biểu thức thời gian |
| 32 | NOW() | Trả về ngày giờ hiện tại |
| 33 | PERIOD_ADD() | Thêm một khoảng thời gian cho tháng trong năm |
| 34 | PERIOD_DIFF() | Trả về số tháng giữa các khoảng thời gian |
| 35 | QUARTER() | Trả về giá trị quý từ biểu thức thời gian |
| 36 | SEC_TO_TIME() | Chuyển đổi số giây sang định dạng 'HH: MM: SS' |
| 37 | SECOND() | Trả về giá trị giây từ biểu thức thời gian |
| 38 | STR_TO_DATE() | Chuyển đổi một chuỗi thành một ngày |
| 39 | SUBDATE() | Trừ một khoảng thời gian từ date truyền vào |
| 40 | SUBTIME() | Trừ hai khoảng thời gian |
| 41 | SYSDATE() | Trả về ngày giờ hiện tại |
| 42 | TIME_FORMAT() | Định dạng giá trị thời gian |
| 43 | TIME_TO_SEC() | Trả về số giây được chuyển đổi từ tham số ban đầu |
| 44 | TIME() | Trả về giá trị thời gian từ biểu thức ban đầu |
| 45 | TIMEDIFF() | Trả về chênh lệch giữa hai giá trị thời gian |
| 46 | TIMESTAMP() | Trả về biểu thức datetime |
| 47 | TIMESTAMPADD() | Cộng khoảng thời gian được chỉ định vào tham số ban đầu |
| 48 | TIMESTAMPDIFF() | Trả về một số nguyên thể hiện sự chênh lệch thời gian giữa hai biểu thức |
| 49 | TO_DAYS() | Trả về số ngày giữa giá trị thời gian date và năm 0 |
| 50 | UNIX_TIMESTAMP() | Trả về số giây theo Unix timestamp từ biểu thức ban đầu |
| 51 | UTC_DATE() | Trả về ngày UTC hiện tại |
| 52 | UTC_TIME() | Trả về giờ UTC hiện tại |
| 53 | UTC_TIMESTAMP() | Trả về ngày giờ UTC hiện tại |
| 54 | WEEKDAY() | Trả về chỉ số ngày trong tuần (0 = Thứ Hai, 1 = Thứ Ba... 6 = Chủ Nhật) |
| 55 | WEEKOFYEAR() | Trả về chỉ số tuần trong năm của biểu thức thời gian |
| 56 | YEAR() | Trả về năm tương ứng của tham số ban đầu |
MySQL đi kèm với các kiểu dữ liệu để lưu trữ giá trị ngày hoặc ngày tháng/thời gian trong cơ sở dữ liệu:
Với:
YYYY là năm được lưu dưới dạng bốn chữ số, YY là năm được lưu dưới dạng hai chữ số; MM là lưu tháng dưới dạng hai chữ số, ví dụ tháng 7 sẽ là 07):
Trong khi làm việc với database của một ứng dụng lớn, bạn thường cần phải lưu trữ thời gian tạo bản ghi hoặc lần chỉnh sửa cuối cùng trong database, ví dụ, lưu ngày & giờ khi người dùng đăng ký, hoặc khi người dùng update mật khẩu gần nhất…
Trong MySQL, bạn có thể dùng hàm NOW() để chèn dấu thời gian hiện tại như sau:
-- Syntax for MySQL Database
INSERT INTO users (name, birth_date, created_at)
VALUES ('Bilbo Baggins', '1998-04-16', NOW());
Tuy nhiên, nếu không muốn tự tay chèn ngày và giờ hiện tại, bạn có thể chỉ dùng thuộc tính auto-initialization và auto-update của TIMESTAMP và DATETIME.
Để gắn thuộc tính tự động, xác định mệnh đề DEFAULT CURRENT_TIMESTAMP và ON UPDATE CURRENT_TIMESTAMP trong định nghĩa cột như sau:
-- Syntax for MySQL Database
CREATE TABLE users (
id INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL UNIQUE,
birth_date DATE NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
Trong phần tiếp theo, Quantrimang sẽ cùng bạn tìm hiểu cách sử dụng tất cả các hàm nói trên với cú pháp và những ví dụ cụ thể, các bạn nhớ theo dõi nhé.
Nguồn tin: Quantrimang.com
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn
Karaoke Người Đó Tôi Đây Tình Đâu(Midi)
Chuyển tin nhắn Messenger thành bài hát trong nháy mắt
Cách xây dựng game nhiều người chơi với Claude Opus 5.5
Cách xem thời tiết trong ChatGPT với AccuWeather để lên kế hoạch
Karaoke Lạnh (Midi)
Cách kết nối ElevenLabs AI agent với Exa
Thiết lập cách ChatGPT thông báo cho bạn khi có công việc cần chú ý
TOP phần mềm OCR scan tài liệu có tích hợp AI tốt nhất
6 trang web tạo mật khẩu ngẫu nhiên an toàn đáng tin cậy
TOP nền tảng xây dựng công cụ nội bộ có tích hợp AI
TOP phần mềm AI bảo mật Internet tốt nhất hiện nay
Biến các ý tưởng thành giải thích trực quan, tương tác trong ChatGPT
TOP tiện ích mở rộng AI cho VS Code tốt nhất
Cách tạo website Portfolio miễn phí bằng ChatGPT
6 lựa chọn thay thế Visual Studio Code tốt nhất có tích hợp AI
Tạo form hỏi đáp tương tác trong vài phút và prompt chỉnh sửa
Hướng dẫn sử dụng Google Slides trong Claude
Hướng dẫn sử dụng Wolfram trong ChatGPT giải toán nâng cao
15 prompt AI thú vị cho ngày lễ Halloween
Hoàn thiện một thiết kế thực tế với ChatGPT + Canva
Hướng dẫn cài đặt và sử dụng n8n trên Windows 11
Cách lập trình chuyên nghiệp hơn, dễ dàng hơn với tính năng Tệp trên Grok
Công thức tính diện tích hình Elip
Hướng dẫn ngắt kết nối ứng dụng trên ChatGPT
Hướng dẫn tạo đoạn hội thoại cho topic trên Twee
Bức tranh tổng quan về hỗ trợ khách hàng tích hợp AI
Cách sửa lỗi There Are Currently No Power Options Available Windows
Claude Code thực sự có giá bao nhiêu?
Hướng dẫn 8 cách mở bàn phím ảo trên Windows 10
Hướng dẫn tạo flashcard trên Canva AI