Các định dạng ngày tháng năm cần nắm trong MySQL:
NOW(): ngày hiện tại dạng yyyy-mm-dd h:m:s
ví dụ: SELECT NOW(); //kết quả: 2007-03-28 11:29:30
CURDATE(): ngày hiện tại dạng yyyy-mm-dd
ví dụ: SELECT CURDATE(); //kết quả: 2007-03-28
YEAR(): xác định năm từ 1 ngày cho trước
ví dụ: SELECT YEAR(‘2007-03-28 11:30:14’);//kết quả: 2007
MONTH(): xác định tháng (1-12) từ 1 ngày cho trước
ví dụ: SELECT MONTH(‘2007-03-28 11:30:11’) // kết quả: 3
MONTHNAME(): xác định tháng (January-December) từ 1 ngày cho trước
ví dụ: SELECT MONTH(‘2007-03-28 11:30:11’)//kết quả: March
WEEKOFYEAR(): thứ tự của tuần trong năm
ví dụ: SELECT WEEKOFYEAR(‘200-03-28’); //kết quả: 13
WEEKDAY: số thứ tự của ngày trong tuần(0 = Monday, 6 = Sunday)
ví dụ: SELECT WEEKDAY(‘2007-03-28 12:23:50’); //kết quả: 2 (tương đương thứ 4)
DATE(): xác định chính ngày từ 1 biểu thức ngày
ví dụ: SELECT DATE(‘2003-12-31 01:02:03’);
-> ‘2003-12-31’
DATEDIFF(expr1,expr2): tính số ngày giữa 2 ngày expr1 và expr2, nếu số ngày >0 nghĩa là expr1>expr2 và ngược lại
Ví dụ: SELECT DATEDIFF(‘1997-12-31 23:59:59′,’1997-12-30’);
-> 1
SELECT DATEDIFF(‘1997-11-30 23:59:59′,’1997-12-31’);
-> -31
DATE_ADD(date,INTERVAL expr unit), DATE_SUB(date,INTERVAL expr unit): cộng(DATE_ADD) hoặc trừ(DATE_SUB) thêm vào ngày cho trước(date)
trong đó unit bao gồm các giá trị:
- MICROSECOND
- SECOND
- MINUTE
- HOUR
- DAY
- WEEK
- MONTH
- QUARTER
- YEAR
- SECOND_MICROSECOND
- MINUTE_MICROSECOND
- MINUTE_SECOND
- HOUR_MICROSECOND
- HOUR_SECOND
- HOUR_MINUTE
- DAY_MICROSECOND
- DAY_SECOND
- DAY_MINUTE
- DAY_HOUR
- YEAR_MONTH
ví dụ:
SELECT DATE_ADD(‘1997-12-31 23:59:59’,
-> INTERVAL 1 SECOND);
-> ‘1998-01-01 00:00:00’
SELECT DATE_ADD(‘1997-12-31 23:59:59’,
-> INTERVAL 1 DAY);
-> ‘1998-01-01 23:59:59’
SELECT DATE_ADD(‘1997-12-31 23:59:59’,
-> INTERVAL ‘1:1’ MINUTE_SECOND);
-> ‘1998-01-01 00:01:00’
SELECT DATE_SUB(‘1998-01-01 00:00:00’,
-> INTERVAL ‘1 1:1:1’ DAY_SECOND);
-> ‘1997-12-30 22:58:59’
SELECT DATE_ADD(‘1998-01-01 00:00:00’,
-> INTERVAL ‘-1 10’ DAY_HOUR);
-> ‘1997-12-30 14:00:00’
SELECT DATE_SUB(‘1998-01-02’, INTERVAL 31 DAY);
-> ‘1997-12-02’
SELECT DATE_ADD(‘1992-12-31 23:59:59.000002’,
-> INTERVAL ‘1.999999’ SECOND_MICROSECOND);
-> ‘1993-01-01 00:00:01.000001’
ngoài ra ta có thể dùng cách sau để thay cho DATE_ADD và DATE_SUB:
date + INTERVAL expr unit <-> DATE_ADD(date, INTERVAL expr unit)
date – INTERVAL expr unit <-> DATE_SUB(date, INTERVAL expr unit)
DATE_FORMAT(date,): định dạng lại ngày trong mysql theo định dạng của format
ví dụ:
SELECT DATE_FORMAT(‘1997-10-04 22:23:00’, ‘%W %M %Y’);
-> ‘Saturday October 1997’
Các giá trị của format:
%a : Sun,..,Sat
%b : Jan,..,Dec)
%c : Month, 0..12
%D : ngày 0th, 1st, 2nd, 3rd, …
%d : ngày 00..31
%e : ngày 0..31
%f : micro giây 000000..999999
%H : giờ (00..23)
%h : giờ (01..12)
%I : giờ (01..12)
%i : Phút (00..59)
%j : Ngày trong năm (001..366)
%k : giờ (0..23)
%l : giờ (1..12)
%M : Tháng(January..December)
%m : Tháng (00..12)
%p : AM hoặc PM
%r : Time, 12-hour (hh:mm:ss followed by AM or PM)
%S : Seconds (00..59)
%s : Seconds (00..59)
%T : Time, 24-hour (hh:mm:ss)
%U : Week (00..53), tuần bắt đầu bằng ngày Sunday
%u : Week (00..53), tuần bắt đầu bằng ngày Sunday,dùng với %X
%v : Week (01..53), tuần bắt đầu bằng ngày Monday,dùng với %x
%W : ngày trong tuần (Sunday..Saturday)
%w : ngày trong tuần (0=Sunday..6=Saturday)
%X : Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V
%x : Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v
%Y : năm (4 ký tự)
%y : năm (2 ký tự: 2 số cuối)
%% : A literal ‘%’ character
%x : x, for any ‘x’ not listed above
DAY()
ví dụ:
SELECT DAY(‘2007-03-28’);
-> 28
DAYNAME()
ví dụ:
SELECT DAYNAME(‘1998-02-05’);
-> ‘Thursday’
DAYOFMONTH(date) : ngày trong tháng 0-31
Ví dụ: SELECT DAYOFMONTH(‘1998-02-03’);
-> 3
DAYOFWEEK(date): ngày trong tuần (1 = Sunday, 2 = Monday, …, 7 = Saturday)
ví dụ: SELECT DAYOFWEEK(‘1998-02-03’);
-> 3
DAYOFYEAR(date): ngày trong năm (1-366)
Ví dụ: SELECT DAYOFYEAR(‘1998-02-03’);
-> 34
EXTRACT(unit FROM date): lấy đơn vị thời gian unit từ ngày date, với unit có các giá trị giống như unit của DATE_ADD và DATE_SUB
ví dụ: SELECT EXTRACT(YEAR FROM ‘1999-07-02’);
-> 1999
SELECT EXTRACT(YEAR_MONTH FROM ‘1999-07-02 01:02:03’);
-> 199907
SELECT EXTRACT(DAY_MINUTE FROM ‘1999-07-02 01:02:03’);
-> 20102
SELECT EXTRACT(MICROSECOND FROM ‘2003-01-02 10:30:00.00123’);
-> 123
FROM_DAYS(N): trả về dạng DATE từ 1 số nguyên
ví dụ:
SELECT FROM_DAYS(729669);
-> ‘1997-10-07’
ADDDATE(date,INTERVAL expr unit) :giống như DATE_ADD(date,INTERVAL expr unit)
SUBDATE(date,INTERVAL expr unit) :giống như DATE_SUB(date,INTERVAL expr unit)
[thongbao]
- Nếu có thắc mắc gì các bạn để lại comment bên dưới mình sẽ trả lời sớm nhất có thể.
- Cảm ơn các bạn đã đọc.
- Nguồn tham khảo Internet.
[/thongbao]