SQL - Hàm ngày

Bảng sau đây có danh sách tất cả các hàm quan trọng liên quan đến Ngày và Giờ có sẵn thông qua SQL. Có nhiều chức năng khác được hỗ trợ bởi RDBMS của bạn. Danh sách đã cho dựa trên MySQL RDBMS.

Sr.No. Mô tả chức năng
1 THÊM ()

Thêm ngày

2 THÊM THỜI GIAN()

Thêm thời gian

3 CONVERT_TZ ()

Chuyển đổi từ múi giờ này sang múi giờ khác

4 CURDATE ()

Trả về ngày hiện tại

5 CURRENT_DATE (), CURRENT_DATE

Từ đồng nghĩa với CURDATE ()

6 CURRENT_TIME (), CURRENT_TIME

Từ đồng nghĩa với CURTIME ()

7 CURRENT_TIMESTAMP (), CURRENT_TIMESTAMP

Từ đồng nghĩa với NOW ()

số 8 CURTIME ()

Trả về thời gian hiện tại

9 DATE_ADD ()

Thêm hai ngày

10 ĐỊNH DẠNG NGÀY THÁNG()

Định dạng ngày như đã chỉ định

11 DATE_SUB ()

Trừ hai ngày

12 NGÀY()

Trích xuất phần ngày của biểu thức ngày tháng hoặc ngày giờ

13 DATEDIFF ()

Trừ hai ngày

14 NGÀY()

Từ đồng nghĩa với DAYOFMONTH ()

15 DAYNAME ()

Trả về tên của ngày trong tuần

16 DAYOFMONTH ()

Trả về ngày trong tháng (1-31)

17 NGÀY TRONG TUẦN()

Trả về chỉ mục ngày trong tuần của đối số

18 DAYOFYEAR ()

Trả về ngày trong năm (1-366)

19 TRÍCH XUẤT

Trích xuất một phần của ngày

20 FROM_DAYS ()

Chuyển đổi một số ngày thành một ngày

21 FROM_UNIXTIME ()

Định dạng ngày dưới dạng dấu thời gian UNIX

22 HOUR ()

Trích xuất giờ

23 NGÀY CUỐI

Trả về ngày cuối cùng của tháng cho đối số

24 LOCALTIME (), LOCALTIME

Từ đồng nghĩa với NOW ()

25 LOCALTIMESTAMP, LOCALTIMESTAMP ()

Từ đồng nghĩa với NOW ()

26 MAKEDATE ()

Tạo một ngày trong năm và ngày trong năm

27 MAKETIME

MAKETIME ()

28 MICROSECOND ()

Trả về micro giây từ đối số

29 PHÚT()

Trả về phút từ đối số

30 THÁNG()

Trả lại tháng kể từ ngày đã qua

31 MONTHNAME ()

Trả về tên của tháng

32 HIỆN NAY()

Trả về ngày và giờ hiện tại

33 PERIOD_ADD ()

Thêm một khoảng thời gian vào một năm tháng

34 PERIOD_DIFF ()

Trả về số tháng giữa các khoảng thời gian

35 PHẦN TƯ()

Trả về phần tư từ đối số ngày

36 SEC_TO_TIME ()

Chuyển đổi giây sang định dạng 'HH: MM: SS'

37 THỨ HAI()

Trả về thứ hai (0-59)

38 STR_TO_DATE ()

Chuyển đổi một chuỗi thành một ngày

39 SUBDATE ()

Khi được gọi với ba đối số, một từ đồng nghĩa với DATE_SUB ()

40 SUBTIME ()

Trừ lần

41 SYSDATE ()

Trả về thời gian mà hàm thực thi

42 TIME_FORMAT ()

Định dạng theo thời gian

43 TIME_TO_SEC ()

Trả về đối số được chuyển đổi thành giây

44 THỜI GIAN()

Trích xuất phần thời gian của biểu thức đã qua

45 TIMEDIFF ()

Trừ thời gian

46 TIMESTAMP ()

Với một đối số duy nhất, hàm này trả về ngày tháng hoặc biểu thức ngày giờ. Với hai đối số, tổng các đối số

47 TIMESTAMPADD ()

Thêm khoảng thời gian vào biểu thức ngày giờ

48 TIMESTAMPDIFF ()

Trừ một khoảng thời gian khỏi biểu thức ngày giờ

49 TO_DAYS ()

Trả về đối số ngày được chuyển đổi thành ngày

50 UNIX_TIMESTAMP ()

Trả về dấu thời gian UNIX

51 UTC_DATE ()

Trả về ngày UTC hiện tại

52 UTC_TIME ()

Trả về thời gian UTC hiện tại

53 UTC_TIMESTAMP ()

Trả về ngày và giờ UTC hiện tại

54 TUẦN()

Trả về số tuần

55 WEEKDAY ()

Trả về chỉ mục ngày trong tuần

56 WEEKOFYEAR ()

Trả về tuần lịch của ngày (1-53)

57 NĂM()

Trả về năm

58 NĂM TUẦN ()

Trả về năm và tuần

ADDDATE (ngày, đơn vị thời hạn INTERVAL), ADDDATE (expr, ngày)

Khi được gọi với dạng INTERVAL của đối số thứ hai, ADDDATE () là một từ đồng nghĩa với DATE_ADD (). Hàm liên quan SUBDATE () là một từ đồng nghĩa với DATE_SUB (). Để biết thông tin về đối số đơn vị INTERVAL, hãy xem thảo luận cho DATE_ADD ().

mysql> SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY)                 |
+---------------------------------------------------------+
| 1998-02-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| ADDDATE('1998-01-02', INTERVAL 31 DAY)                  |
+---------------------------------------------------------+
| 1998-02-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Khi được gọi với dạng ngày của đối số thứ hai, MySQL coi nó như một số nguyên ngày sẽ được thêm vào expr.

mysql> SELECT ADDDATE('1998-01-02', 31);
+---------------------------------------------------------+
| DATE_ADD('1998-01-02', INTERVAL 31 DAY)                 |
+---------------------------------------------------------+
| 1998-02-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

ADDTIME (expr1, expr2)

ADDTIME () thêm expr2 vào expr1 và trả về kết quả. Expr1 là một biểu thức thời gian hoặc ngày giờ, trong khi expr2 là một biểu thức thời gian.

mysql> SELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002') |
+---------------------------------------------------------+
| 1998-01-02 01:01:01.000001                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CONVERT_TZ (dt, from_tz, to_tz)

Điều này chuyển đổi một giá trị datetime dt từ múi giờ do from_tz cung cấp thành múi giờ do to_tz cung cấp và trả về giá trị kết quả. Hàm này trả về NULL nếu các đối số không hợp lệ.

mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')           |
+---------------------------------------------------------+
| 2004-01-01 13:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');
+---------------------------------------------------------+
| CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')     |
+---------------------------------------------------------+
| 2004-01-01 22:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURDATE ()

Trả về ngày hiện tại dưới dạng giá trị ở định dạng 'YYYY-MM-DD' hoặc YYYYMMDD, tùy thuộc vào việc hàm được sử dụng trong chuỗi hay trong ngữ cảnh số.

mysql> SELECT CURDATE();
+---------------------------------------------------------+
| CURDATE()                                               |
+---------------------------------------------------------+
| 1997-12-15                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CURDATE() + 0;
+---------------------------------------------------------+
| CURDATE() + 0                                           |
+---------------------------------------------------------+
| 19971215                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURRENT_DATE và CURRENT_DATE ()

CURRENT_DATE và CURRENT_DATE () là từ đồng nghĩa của CURDATE ()

CURTIME ()

Trả về thời gian hiện tại dưới dạng giá trị ở định dạng 'HH: MM: SS' hoặc HHMMSS, tùy thuộc vào việc hàm được sử dụng trong chuỗi hay trong ngữ cảnh số. Giá trị được biểu thị theo múi giờ hiện tại.

mysql> SELECT CURTIME();
+---------------------------------------------------------+
| CURTIME()                                               |
+---------------------------------------------------------+
| 23:50:26                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT CURTIME() + 0;
+---------------------------------------------------------+
| CURTIME() + 0                                           |
+---------------------------------------------------------+
| 235026                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

CURRENT_TIME và CURRENT_TIME ()

CURRENT_TIME và CURRENT_TIME () là từ đồng nghĩa của CURTIME ().

CURRENT_TIMESTAMP và CURRENT_TIMESTAMP ()

CURRENT_TIMESTAMP và CURRENT_TIMESTAMP () là từ đồng nghĩa với NOW ().

DATE (expr)

Trích xuất phần ngày của ngày hoặc biểu thức datetime expr.

mysql> SELECT DATE('2003-12-31 01:02:03');
+---------------------------------------------------------+
| DATE('2003-12-31 01:02:03')                             |
+---------------------------------------------------------+
|  2003-12-31                                             |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATEDIFF (expr1, expr2)

DATEDIFF () trả về expr1. expr2 được biểu thị dưới dạng giá trị tính theo ngày từ ngày này sang ngày khác. Cả expr1 và expr2 đều là biểu thức ngày tháng hoặc ngày giờ. Chỉ phần ngày của các giá trị được sử dụng trong phép tính.

mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
+---------------------------------------------------------+
| DATEDIFF('1997-12-31 23:59:59','1997-12-30')            |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_ADD (ngày, đơn vị thời hạn INTERVAL), DATE_SUB (ngày, đơn vị thời hạn INTERVAL)

Các hàm này thực hiện số học ngày tháng. Cácdatelà giá trị DATETIME hoặc DATE xác định ngày bắt đầu. Cácexprlà một biểu thức xác định giá trị khoảng thời gian được cộng hoặc trừ từ ngày bắt đầu. Expr là một chuỗi; nó có thể bắt đầu bằng dấu '-' cho các khoảng âm.

A unit là một từ khóa cho biết các đơn vị mà biểu thức cần được diễn giải.

Các INTERVAL từ khóa và từ chỉ định đơn vị không phân biệt chữ hoa chữ thường.

Bảng sau đây cho thấy dạng mong đợi của đối số expr cho mỗi giá trị đơn vị.

giá trị đơn vị ExprFormat dự kiến
MICROSECOND MICROSECONDS
THỨ HAI GIÂY
PHÚT PHÚT
GIỜ GIỜ
NGÀY NGÀY
TUẦN TUẦN
THÁNG THÁNG
PHẦN TƯ QUARTERS
NĂM NĂM
SECOND_MICROSECOND 'SECONDS.MICROSECONDS'
MINUTE_MICROSECOND 'MINUTES.MICROSECONDS'
MINUTE_SECOND 'MINUTES: SECONDS'
HOUR_MICROSECOND 'HOURS.MICROSECONDS'
HOUR_SECOND 'HOURS: MINUTES: SECONDS'
HOUR_MINUTE 'HOURS: MINUTES'
DAY_MICROSECOND 'DAYS.MICROSECONDS'
DAY_SECOND 'DAYS GIỜ: MINUTES: SECONDS'
DAY_MINUTE 'NGÀY GIỜ: PHÚT'
DAY_HOUR 'NGÀY GIỜ'
NĂM THÁNG 'NĂM-THÁNG'

Giá trị QUARTERWEEKcó sẵn từ MySQL 5.0.0. phiên bản.

mysql> SELECT DATE_ADD('1997-12-31 23:59:59', 
   -> INTERVAL '1:1' MINUTE_SECOND);
+---------------------------------------------------------+
| DATE_ADD('1997-12-31 23:59:59', INTERVAL...             |
+---------------------------------------------------------+
| 1998-01-01 00:01:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_ADD('1999-01-01', INTERVAL 1 HOUR);
+---------------------------------------------------------+
| DATE_ADD('1999-01-01', INTERVAL 1 HOUR)                 |
+---------------------------------------------------------+
| 1999-01-01 01:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_FORMAT (ngày, định dạng)

Lệnh này định dạng giá trị ngày tháng theo chuỗi định dạng.

Các thông số sau có thể được sử dụng trong chuỗi định dạng. Ký tự '%' là bắt buộc trước các ký tự chỉ định định dạng.

Sr.No. Chỉ định & Mô tả
1

%a

Tên ngày trong tuần viết tắt (CN..Sat)

2

%b

Tên tháng viết tắt (Jan..Dec)

3

%c

Tháng, số (0..12)

4

%D

Ngày trong tháng với hậu tố tiếng Anh (0th, 1, 2, 3,.)

5

%d

Ngày trong tháng, số (00..31)

6

%e

Ngày trong tháng, số (0..31)

7

%f

Microseconds (000000..999999)

số 8

%H

Giờ (00..23)

9

%h

Giờ (01..12)

10

%I

Giờ (01..12)

11

%i

Phút, số (00..59)

12

%j

Ngày trong năm (001..366)

13

%k

Giờ (0..23)

14

%l

Giờ (1..12)

15

%M

Tên tháng (Tháng 1.. Tháng 12)

16

%m

Tháng, số (00..12)

17

%p

SA hoặc CH

18

%r

Thời gian, 12 giờ (hh: mm: ss sau đó là SA hoặc CH)

19

%S

Giây (00..59)

20

%s

Giây (00..59)

21

%T

Thời gian, 24 giờ (hh: mm: ss)

22

%U

Tuần (00..53), trong đó Chủ nhật là ngày đầu tiên trong tuần

23

%u

Tuần (00..53), trong đó Thứ Hai là ngày đầu tiên trong tuần

24

%V

Tuần (01..53), trong đó Chủ nhật là ngày đầu tiên trong tuần; được sử dụng với% X

25

%v

Tuần (01..53), trong đó Thứ Hai là ngày đầu tiên trong tuần; được sử dụng với% x

26

%W

Tên ngày trong tuần (Chủ nhật..Thứ bảy)

27

%w

Ngày trong tuần (0 = Chủ nhật..6 = Thứ bảy)

28

%X

Năm cho tuần mà Chủ nhật là ngày đầu tiên của tuần, là số, bốn chữ số; được sử dụng với% V

29

%x

Năm trong tuần, trong đó Thứ Hai là ngày đầu tiên của tuần, dạng số, bốn chữ số; được sử dụng với% v

30

%Y

Năm, số, bốn chữ số

31

%y

Năm, số (hai chữ số)

32

%%

Một nghĩa đen.%. tính cách

33

%x

x, cho bất kỳ.x. không được liệt kê ở trên

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
+---------------------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y')          |
+---------------------------------------------------------+
| Saturday October 1997                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00'
   -> '%H %k %I %r %T %S %w');
+---------------------------------------------------------+
| DATE_FORMAT('1997-10-04 22:23:00.......                 |
+---------------------------------------------------------+
|  22 22 10 10:23:00 PM 22:23:00 00 6                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DATE_SUB (ngày, đơn vị thời hạn INTERVAL)

Điều này tương tự với hàm DATE_ADD ().

DAY (ngày)

DAY () là một từ đồng nghĩa với hàm DAYOFMONTH ().

DAYNAME (ngày)

Trả về tên của ngày trong tuần cho ngày.

mysql> SELECT DAYNAME('1998-02-05');
+---------------------------------------------------------+
| DAYNAME('1998-02-05')                                   |
+---------------------------------------------------------+
| Thursday                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFMONTH (ngày)

Trả về ngày trong tháng cho ngày, trong phạm vi từ 0 đến 31.

mysql> SELECT DAYOFMONTH('1998-02-03');
+---------------------------------------------------------+
| DAYOFMONTH('1998-02-03')                                |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFWEEK (ngày)

Trả về chỉ số ngày trong tuần cho ngày (1 = Chủ nhật, 2 = Thứ Hai,., 7 = Thứ Bảy). Các giá trị chỉ số này tương ứng với tiêu chuẩn ODBC.

mysql> SELECT DAYOFWEEK('1998-02-03');
+---------------------------------------------------------+
|DAYOFWEEK('1998-02-03')                                  |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

DAYOFYEAR (ngày)

Trả về ngày trong năm cho ngày, trong phạm vi từ 1 đến 366.

mysql> SELECT DAYOFYEAR('1998-02-03');
+---------------------------------------------------------+
| DAYOFYEAR('1998-02-03')                                 |
+---------------------------------------------------------+
| 34                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TRÍCH (đơn vị TỪ ngày)

Hàm EXTRACT () sử dụng cùng loại mã định đơn vị như DATE_ADD () hoặc DATE_SUB (), nhưng trích xuất các phần từ ngày thay vì thực hiện số học ngày.

mysql> SELECT EXTRACT(YEAR FROM '1999-07-02');
+---------------------------------------------------------+
| EXTRACT(YEAR FROM '1999-07-02')                         |
+---------------------------------------------------------+
| 1999                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03');
+---------------------------------------------------------+
| EXTRACT(YEAR_MONTH FROM '1999-07-02 01:02:03')          |
+---------------------------------------------------------+
| 199907                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

FROM_DAYS (N)

Cho một số ngày N, trả về giá trị DATE.

mysql> SELECT FROM_DAYS(729669);
+---------------------------------------------------------+
| FROM_DAYS(729669)                                       |
+---------------------------------------------------------+
| 1997-10-07                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Note- Sử dụng FROM_DAYS () một cách thận trọng vào các ngày cũ. Nó không được thiết kế để sử dụng với các giá trị trước sự ra đời của lịch Gregory (1582).

FROM_UNIXTIME (unix_timestamp)

FROM_UNIXTIME (unix_timestamp, định dạng)

Trả về một đại diện của unix_timestampđối số dưới dạng giá trị ở định dạng 'YYYY-MM-DD HH: MM: SS hoặc YYYYMMDDHHMMSS, tùy thuộc vào việc hàm được sử dụng trong chuỗi hay trong ngữ cảnh số. Giá trị được biểu thị theo múi giờ hiện tại. Đối số unix_timestamp là một giá trị dấu thời gian bên trong, được tạo ra bởiUNIX_TIMESTAMP() chức năng.

Nếu định dạng được cung cấp, kết quả được định dạng theo chuỗi định dạng, được sử dụng theo cách giống như được liệt kê trong mục nhập cho DATE_FORMAT() chức năng.

mysql> SELECT FROM_UNIXTIME(875996580);
+---------------------------------------------------------+
| FROM_UNIXTIME(875996580)                                |
+---------------------------------------------------------+
| 1997-10-04 22:23:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

HOUR (thời gian)

Trả về giờ cho thời gian. Phạm vi của giá trị trả về là 0 đến 23 đối với giá trị thời gian trong ngày. Tuy nhiên, phạm vi giá trị TIME thực sự lớn hơn nhiều, vì vậy HOUR có thể trả về giá trị lớn hơn 23.

mysql> SELECT HOUR('10:05:03');
+---------------------------------------------------------+
| HOUR('10:05:03')                                        |
+---------------------------------------------------------+
| 10                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LAST_DAY (ngày)

Lấy giá trị ngày tháng hoặc ngày giờ và trả về giá trị tương ứng cho ngày cuối cùng của tháng. Trả về NULL nếu đối số không hợp lệ.

mysql> SELECT LAST_DAY('2003-02-05');
+---------------------------------------------------------+
| LAST_DAY('2003-02-05')                                  |
+---------------------------------------------------------+
| 2003-02-28                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

LOCALTIME và LOCALTIME ()

LOCALTIME và LOCALTIME () là từ đồng nghĩa của NOW ().

LOCALTIMESTAMP và LOCALTIMESTAMP ()

LOCALTIMESTAMP và LOCALTIMESTAMP () là từ đồng nghĩa với NOW ().

MAKEDATE (năm, hàng ngày)

Trả về một ngày, giá trị năm nhất định và ngày trong năm. Giá trị dayofyear phải lớn hơn 0 nếu không kết quả sẽ là NULL.

mysql> SELECT MAKEDATE(2001,31), MAKEDATE(2001,32);
+---------------------------------------------------------+
| MAKEDATE(2001,31), MAKEDATE(2001,32)                    |
+---------------------------------------------------------+
| '2001-01-31', '2001-02-01'                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MAKETIME (giờ, phút, giây)

Trả về giá trị thời gian được tính từ các đối số giờ, phút và giây.

mysql> SELECT MAKETIME(12,15,30);
+---------------------------------------------------------+
| MAKETIME(12,15,30)                                      |
+---------------------------------------------------------+
| '12:15:30'                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MICROSECOND (expr)

Trả về micro giây từ biểu thức thời gian hoặc ngày giờ (expr) dưới dạng một số trong phạm vi từ 0 đến 999999.

mysql> SELECT MICROSECOND('12:00:00.123456');
+---------------------------------------------------------+
| MICROSECOND('12:00:00.123456')                          |
+---------------------------------------------------------+
| 123456                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MINUTE (thời gian)

Trả về phút cho thời gian, trong phạm vi từ 0 đến 59.

mysql> SELECT MINUTE('98-02-03 10:05:03');
+---------------------------------------------------------+
| MINUTE('98-02-03 10:05:03')                             |
+---------------------------------------------------------+
| 5                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Ngày tháng)

Trả về tháng cho ngày, trong phạm vi từ 0 đến 12.

mysql> SELECT MONTH('1998-02-03')
+---------------------------------------------------------+
| MONTH('1998-02-03')                                     |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

MONTHNAME (ngày)

Trả về tên đầy đủ của tháng cho một ngày.

mysql> SELECT MONTHNAME('1998-02-05');
+---------------------------------------------------------+
| MONTHNAME('1998-02-05')                                 |
+---------------------------------------------------------+
| February                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

HIỆN NAY()

Trả về ngày và giờ hiện tại dưới dạng giá trị ở định dạng 'YYYY-MM-DD HH: MM: SS' hoặc YYYYMMDDHHMMSS, tùy thuộc vào việc hàm được sử dụng trong ngữ cảnh chuỗi hay số. Giá trị này được biểu thị bằng múi giờ hiện tại.

mysql> SELECT NOW();
+---------------------------------------------------------+
| NOW()                                                   |
+---------------------------------------------------------+
| 1997-12-15 23:50:26                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PERIOD_ADD (P, N)

Thêm N tháng vào khoảng thời gian P (ở định dạng YYMM hoặc YYYYMM). Trả về một giá trị ở định dạng YYYYMM. Lưu ý rằng đối số khoảng thời gian P không phải là giá trị ngày tháng.

mysql> SELECT PERIOD_ADD(9801,2);
+---------------------------------------------------------+
| PERIOD_ADD(9801,2)                                      |
+---------------------------------------------------------+
| 199803                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

PERIOD_DIFF (P1, P2)

Trả về số tháng giữa các khoảng thời gian P1 và P2. Các khoảng thời gian P1 và P2 này phải ở định dạng YYMM hoặc YYYYMM. Lưu ý rằng các đối số dấu chấm P1 và P2 không phải là giá trị ngày tháng.

mysql> SELECT PERIOD_DIFF(9802,199703);
+---------------------------------------------------------+
| PERIOD_DIFF(9802,199703)                                |
+---------------------------------------------------------+
| 11                                                      |
+---------------------------------------------------------+
1 row in set (0.00 sec)

QUARTER (ngày)

Trả về phần tư của năm cho ngày, trong phạm vi từ 1 đến 4.

mysql> SELECT QUARTER('98-04-01');
+---------------------------------------------------------+
| QUARTER('98-04-01')                                     |
+---------------------------------------------------------+
| 2                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Lần thứ hai)

Trả về thời gian thứ hai, trong phạm vi từ 0 đến 59.

mysql> SELECT SECOND('10:05:03');
+---------------------------------------------------------+
| SECOND('10:05:03')                                      |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SEC_TO_TIME (giây)

Trả về đối số giây, được chuyển đổi thành giờ, phút và giây, dưới dạng giá trị ở định dạng 'HH: MM: SS' hoặc HHMMSS, tùy thuộc vào việc hàm được sử dụng trong ngữ cảnh chuỗi hay số.

mysql> SELECT SEC_TO_TIME(2378);
+---------------------------------------------------------+
| SEC_TO_TIME(2378)                                       |
+---------------------------------------------------------+
| 00:39:38                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

STR_TO_DATE (str, định dạng)

Đây là nghịch đảo của hàm DATE_FORMAT (). Nó có một chuỗi str và một định dạng chuỗi định dạng. Hàm STR_TO_DATE () trả về giá trị DATETIME nếu chuỗi định dạng chứa cả phần ngày và giờ. Ngược lại, nó trả về giá trị DATE hoặc TIME nếu chuỗi chỉ chứa các phần ngày hoặc giờ.

mysql> SELECT STR_TO_DATE('04/31/2004', '%m/%d/%Y');
+---------------------------------------------------------+
| STR_TO_DATE('04/31/2004', '%m/%d/%Y')                   |
+---------------------------------------------------------+
| 2004-04-31                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBDATE (ngày, đơn vị INTERVAL expr) và SUBDATE (expr, days)

Khi được gọi với dạng INTERVAL của đối số thứ hai, SUBDATE () là một từ đồng nghĩa với DATE_SUB (). Để biết thông tin về đối số đơn vị INTERVAL, hãy xem thảo luận cho DATE_ADD ().

mysql> SELECT DATE_SUB('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| DATE_SUB('1998-01-02', INTERVAL 31 DAY)                 |
+---------------------------------------------------------+
| 1997-12-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT SUBDATE('1998-01-02', INTERVAL 31 DAY);
+---------------------------------------------------------+
| SUBDATE('1998-01-02', INTERVAL 31 DAY)                  |
+---------------------------------------------------------+
| 1997-12-02                                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SUBTIME (expr1, expr2)

Hàm SUBTIME () trả về expr1. expr2 được biểu thị dưới dạng một giá trị có cùng định dạng với expr1. Giá trị expr1 là một biểu thức thời gian hoặc ngày tháng, trong khi giá trị expr2 là một biểu thức thời gian.

mysql> SELECT SUBTIME('1997-12-31 23:59:59.999999',
   -> '1 1:1:1.000002');
+---------------------------------------------------------+
| SUBTIME('1997-12-31 23:59:59.999999'...                 |
+---------------------------------------------------------+
| 1997-12-30 22:58:58.999997                              |
+---------------------------------------------------------+
1 row in set (0.00 sec)

SYSDATE ()

Trả về ngày và giờ hiện tại dưới dạng giá trị ở định dạng 'YYYY-MM-DD HH: MM: SS' hoặc YYYYMMDDHHMMSS, tùy thuộc vào việc hàm được sử dụng trong chuỗi hay trong ngữ cảnh số.

mysql> SELECT SYSDATE();
+---------------------------------------------------------+
| SYSDATE()                                               |
+---------------------------------------------------------+
| 2006-04-12 13:47:44                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME (expr)

Trích xuất phần thời gian của biểu thức thời gian hoặc ngày giờ expr và trả về nó dưới dạng một chuỗi.

mysql> SELECT TIME('2003-12-31 01:02:03');
+---------------------------------------------------------+
| TIME('2003-12-31 01:02:03')                             |
+---------------------------------------------------------+
| 01:02:03                                                |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMEDIFF (expr1, expr2)

Hàm TIMEDIFF () trả về expr1. expr2 được biểu thị dưới dạng giá trị thời gian. Các giá trị expr1 và expr2 này là thời gian hoặc biểu thức ngày và giờ, nhưng cả hai phải cùng loại.

mysql> SELECT TIMEDIFF('1997-12-31 23:59:59.000001',
   -> '1997-12-30 01:01:01.000002');
+---------------------------------------------------------+
| TIMEDIFF('1997-12-31 23:59:59.000001'.....              |
+---------------------------------------------------------+
|  46:58:57.999999                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMP (expr), TIMESTAMP (expr1, expr2)

Với một đối số duy nhất, hàm này trả về ngày tháng hoặc biểu thức datetime expr dưới dạng giá trị datetime. Với hai đối số, nó thêm biểu thức thời gian expr2 vào ngày tháng hoặc biểu thức datetimeexpr1 và trả về kết quả dưới dạng giá trị ngày giờ.

mysql> SELECT TIMESTAMP('2003-12-31');
+---------------------------------------------------------+
| TIMESTAMP('2003-12-31')                                 |
+---------------------------------------------------------+
| 2003-12-31 00:00:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMPADD (đơn vị, khoảng thời gian, datetime_expr)

Hàm này thêm khoảng biểu thức số nguyên vào ngày tháng hoặc biểu thức ngày giờ datetime_expr. Đơn vị cho khoảng thời gian được đưa ra bởi đối số đơn vị, phải là một trong các giá trị sau:

  • FRAC_SECOND
  • SECOND, MINUTE
  • HOUR, DAY
  • WEEK
  • MONTH
  • QUARTER hoặc
  • YEAR

Giá trị đơn vị có thể được chỉ định bằng cách sử dụng một trong các từ khóa như được hiển thị hoặc với tiền tố SQL_TSI_.

Ví dụ: DAY và SQL_TSI_DAY đều hợp pháp.

mysql> SELECT TIMESTAMPADD(MINUTE,1,'2003-01-02');
+---------------------------------------------------------+
| TIMESTAMPADD(MINUTE,1,'2003-01-02')                     |
+---------------------------------------------------------+
| 2003-01-02 00:01:00                                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIMESTAMPDIFF (đơn vị, datetime_expr1, datetime_expr2)

Trả về sự khác biệt số nguyên giữa ngày hoặc biểu thức ngày giờ datetime_expr1 và datetime_expr2. Đơn vị cho kết quả được đưa ra bởi đối số đơn vị. Các giá trị pháp lý cho đơn vị giống như các giá trị được liệt kê trong mô tả của hàm TIMESTAMPADD ().

mysql> SELECT TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01');
+---------------------------------------------------------+
| TIMESTAMPDIFF(MONTH,'2003-02-01','2003-05-01')          |
+---------------------------------------------------------+
| 3                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME_FORMAT (thời gian, định dạng)

Hàm này được sử dụng giống như hàm DATE_FORMAT (), nhưng chuỗi định dạng chỉ có thể chứa các từ định dạng cho giờ, phút và giây.

Nếu giá trị thời gian chứa phần giờ lớn hơn 23, thì%H và%k Các mã định dạng giờ tạo ra giá trị lớn hơn phạm vi thông thường từ 0 đến 23. Các mã định dạng giờ khác tạo ra mô-đun giá trị giờ 12.

mysql> SELECT TIME_FORMAT('100:00:00', '%H %k %h %I %l');
+---------------------------------------------------------+
| TIME_FORMAT('100:00:00', '%H %k %h %I %l')              |
+---------------------------------------------------------+
| 100 100 04 04 4                                         |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TIME_TO_SEC (thời gian)

Trả về đối số thời gian được chuyển đổi thành giây.

mysql> SELECT TIME_TO_SEC('22:23:00');
+---------------------------------------------------------+
| TIME_TO_SEC('22:23:00')                                 |
+---------------------------------------------------------+
| 80580                                                   |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TO_DAYS (ngày)

Đã cho một ngày, trả về một số ngày (số ngày kể từ năm 0).

mysql> SELECT TO_DAYS(950501);
+---------------------------------------------------------+
| TO_DAYS(950501)                                         |
+---------------------------------------------------------+
| 728779                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UNIX_TIMESTAMP (), UNIX_TIMESTAMP (ngày)

Nếu được gọi không có đối số, hàm này trả về dấu thời gian Unix (giây kể từ '1970-01-01 00:00:00' UTC) dưới dạng số nguyên không dấu. Nếu UNIX_TIMESTAMP () được gọi với một đối số ngày, nó trả về giá trị của đối số dưới dạng giây kể từ '1970-01-01 00:00:00' UTC. ngày có thể là chuỗi DATE, chuỗi DATETIME, TIMESTAMP hoặc một số ở định dạng YYMMDD hoặc YYYYMMDD.

mysql> SELECT UNIX_TIMESTAMP();
+---------------------------------------------------------+
| UNIX_TIMESTAMP()                                        |
+---------------------------------------------------------+
| 882226357                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
+---------------------------------------------------------+
| UNIX_TIMESTAMP('1997-10-04 22:23:00')                   |
+---------------------------------------------------------+
| 875996580                                               |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_DATE, UTC_DATE ()

Trả về ngày UTC hiện tại dưới dạng giá trị ở định dạng 'YYYY-MM-DD' hoặc YYYYMMDD, tùy thuộc vào việc hàm được sử dụng trong ngữ cảnh chuỗi hay số.

mysql> SELECT UTC_DATE(), UTC_DATE() + 0;
+---------------------------------------------------------+
| UTC_DATE(), UTC_DATE() + 0                              |
+---------------------------------------------------------+
| 2003-08-14, 20030814                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_TIME, UTC_TIME ()

Trả về thời gian UTC hiện tại dưới dạng giá trị ở định dạng 'HH: MM: SS' hoặc HHMMSS, tùy thuộc vào việc hàm được sử dụng trong ngữ cảnh chuỗi hay số.

mysql> SELECT UTC_TIME(), UTC_TIME() + 0;
+---------------------------------------------------------+
| UTC_TIME(), UTC_TIME() + 0                              |
+---------------------------------------------------------+
| 18:07:53, 180753                                        |
+---------------------------------------------------------+
1 row in set (0.00 sec)

UTC_TIMESTAMP, UTC_TIMESTAMP ()

Trả về ngày và giờ UTC hiện tại dưới dạng giá trị trong 'YYYY-MM-DD HH: MM: SS' hoặc ở định dạng YYYYMMDDHHMMSS, tùy thuộc vào việc hàm được sử dụng trong chuỗi hay trong ngữ cảnh số.

mysql> SELECT UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0;
+---------------------------------------------------------+
| UTC_TIMESTAMP(), UTC_TIMESTAMP() + 0                    |
+---------------------------------------------------------+
| 2003-08-14 18:08:04, 20030814180804                     |
+---------------------------------------------------------+
1 row in set (0.00 sec)

TUẦN (ngày [, chế độ])

Hàm này trả về số tuần cho ngày. Dạng hai đối số của WEEK () cho phép bạn chỉ định tuần bắt đầu vào Chủ Nhật hay Thứ Hai và giá trị trả về phải nằm trong phạm vi từ 0 đến 53 hoặc từ 1 đến 53. Nếu đối số chế độ bị bỏ qua, giá trị của biến hệ thống default_week_format được sử dụng

Chế độ Ngày đầu tuần Phạm vi Tuần 1 là tuần đầu tiên.
0 chủ nhật 0-53 với một ngày chủ nhật trong năm nay
1 Thứ hai 0-53 với hơn 3 ngày trong năm nay
2 chủ nhật 1-53 với một ngày chủ nhật trong năm nay
3 Thứ hai 1-53 với hơn 3 ngày trong năm nay
4 chủ nhật 0-53 với hơn 3 ngày trong năm nay
5 Thứ hai 0-53 với một ngày thứ Hai trong năm nay
6 chủ nhật 1-53 với hơn 3 ngày trong năm nay
7 Thứ hai 1-53 với một ngày thứ Hai trong năm nay
mysql> SELECT WEEK('1998-02-20');
+---------------------------------------------------------+
| WEEK('1998-02-20')                                      |
+---------------------------------------------------------+
| 7                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

WEEKDAY (ngày)

Trả về chỉ số ngày trong tuần cho ngày (0 = Thứ Hai, 1 = Thứ Ba,. 6 = Chủ Nhật).

mysql> SELECT WEEKDAY('1998-02-03 22:23:00');
+---------------------------------------------------------+
| WEEKDAY('1998-02-03 22:23:00')                          |
+---------------------------------------------------------+
| 1                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

WEEKOFYEAR (ngày)

Trả về tuần lịch của ngày dưới dạng một số trong phạm vi từ 1 đến 53. WEEKOFYEAR () là một hàm tương thích tương đương với WEEK (ngày, 3).

mysql> SELECT WEEKOFYEAR('1998-02-20');
+---------------------------------------------------------+
| WEEKOFYEAR('1998-02-20')                                |
+---------------------------------------------------------+
| 8                                                       |
+---------------------------------------------------------+
1 row in set (0.00 sec)

YEAR (ngày)

Trả về năm cho ngày, trong phạm vi 1000 đến 9999 hoặc 0 cho .zero. ngày.

mysql> SELECT YEAR('98-02-03');
+---------------------------------------------------------+
| YEAR('98-02-03')                                        |
+---------------------------------------------------------+
| 1998                                                    |
+---------------------------------------------------------+
1 row in set (0.00 sec)

YEARWEEK (ngày), YEARWEEK (ngày, chế độ)

Trả về năm và tuần cho một ngày. Đối số mode hoạt động chính xác như đối số mode đối với hàm WEEK (). Năm trong kết quả có thể khác với năm trong đối số ngày cho tuần đầu tiên và tuần cuối cùng của năm.

mysql> SELECT YEARWEEK('1987-01-01');
+---------------------------------------------------------+
| YEAR('98-02-03')YEARWEEK('1987-01-01')                  |
+---------------------------------------------------------+
| 198653                                                  |
+---------------------------------------------------------+
1 row in set (0.00 sec)

Note - Số tuần khác với số mà hàm WEEK () sẽ trả về (0) cho các đối số tùy chọn 0 hoặc 1, vì WEEK () sau đó trả về tuần trong ngữ cảnh của năm nhất định.