Vừa qua mình vừa có 1 task liên quan đến việc tính toán và xử lí ngày tháng bằng câu lệnh SQL. Trong quá trình tìm hiểu và thực hiền mình có rút ra 1 chút kinh nghiệm hay hay nên hôm nay muốn chia sẽ cùng mọi người, mong có thế giúp các bạn khi cần thiết
1. Kiểu dữ liệu ngày SQL.
MySQL có các loại dữ liệu sau cho một ngày hoặc giá trị ngày / thời gian trong cơ sở dữ liệu: có các loại dữ liệu sau cho một ngày hoặc giá trị ngày / thời gian trong cơ sở dữ liệu:
- Date - format YYYY-MM-DD - format YYYY-MM-DD
- DATETIME - format: YYYY-MM-DD HH:MI:SS - format: YYYY-MM-DD HH:MI:SS
- TIMESTAMP - format: YYYY-MM-DD HH:MI:SS - format: YYYY-MM-DD HH:MI:SS
- YEAR - format YYYY hoặc YY - format YYYY hoặc YY
Sql server có các loại dữ liệu sau cho một ngày hoặc giá trị ngày / thời gian trong cơ sở dữ liệu: có các loại dữ liệu sau cho một ngày hoặc giá trị ngày / thời gian trong cơ sở dữ liệu:
- DATE - format YYYY-MM-DD - format YYYY-MM-DD
- DATETIME - format: YYYY-MM-DD HH:MI:SS - format: YYYY-MM-DD HH:MI:SS
- TIMESTAMP - format: YYYY-MM-DD HH:MI:SS - format: YYYY-MM-DD HH:MI:SS
- YEAR - format YYYY hoặc YY - format: 1 số duy nhất
Sql server có các loại dữ liệu sau cho một ngày hoặc giá trị ngày / thời gian trong cơ sở dữ liệu:
TIMESTAMP - format: 1 số duy nhất[] | 2. Các funtion thường sử dụng. |
Tên[] | Chức năng |
DATE[] [] | Trả về ngày từ biểu thức datetime |
CURDATE[] [] | Trả về ngày hiện tại của máy tính |
YEAR[] [] | Trả về năm của ngày đã chỉ định |
MONTH[] [] | Trả về tháng của ngày đã chỉ định |
TIMESTAMP - format: 1 số duy nhất[] | 2. Các funtion thường sử dụng. |
Tên[] | 2. Các funtion thường sử dụng. |
Tên[] | 2. Các funtion thường sử dụng. |
Tên[] | 2. Các funtion thường sử dụng. |
Tên[] | Chức năng |
DATE[] [] | Trả về ngày từ biểu thức datetime |
CURDATE[] [] | Trả về ngày hiện tại của máy tính |
YEAR[] [] | Trả về năm của ngày đã chỉ định |
MONTH[] [] | Trả về tháng của ngày đã chỉ định |
DAY[]
Trả về ngày của ngày được chỉ định
TIME[]
Trả về giờ của ngày được chỉ định
DATE_ADD[] DATEDIFF[]
DATEDIFF[] [] trừ hai giá trị ngày và trả về số ngày giữa chúng.
SELECT DATEDIFF[CURDATE[], birthday] AS days_difference
FROM friends
LIMIT 5;
DATE_SUB[]
NOW[]
SELECT ROUND[DATEDIFF[CURDATE[], birthday] / 365, 0] AS years
FROM friends
LIMIT 5;
Trả về thời gian hiện tại
DAYOFWEEK[]
SELECT
first_name,
last_name,
[YEAR[CURDATE[]] - YEAR[birthday]] - [RIGHT[CURDATE[], 5]