So sánh giờ phút trong mysql

Bảng dưới đây liệt kê tất cả các hàm quan trọng trong danh sách các hàm xử lý Date trong SQL. Ngoài những hàm quan trong, có nhiều hàm khác được hỗ trợ bởi các RDBMS khác nhau. Danh sách đưa ra dựa trên MySQL RDBMS.

No. Mô tả 1

Thêm ngày tháng

2

Thêm thời gian

3

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

4

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

5

Tương tự như hàm CURDATE()

6

Tương tự như hàm với CURTIME()

7

Tương tự như hàm với NOW()

8

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

9

Thêm hai ngày

10

Định dạng ngày theo quy định

11

Trừ hai ngày

12

Trả về phần ngày của date hoặc biểu thức datetime

13

Trừ hai ngày

14

Tương tự như DAYOFMONTH()

15

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

16

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

17

Trả về chỉ số weekday của đối số

18

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

19

Trả về một phần của một ngày

20

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

21

Định dạng ngày như timestamp trên UNIX

22

Trả về giờ từ đối số truyền vào

23

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

24

Tương tự như hàm với NOW()

25

Tương tự như hàm với NOW()

26

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

27

MAKETIME()

28

Trả về microseconds từ đối số

29

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

30

Trả về tháng từ ngày được truyền vào

31

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

32

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

33

Thêm một khoảng thời gian cho một tháng một năm

34

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

35

Trả về quý từ đối số ngày

36

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

37

Trả về giá trị giây (0-59)

38

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

39

Khi được gọi với ba đối số, tương tự như hàm DATE_SUB()

40

Trừ lần

41

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

42

Định dạng theo thời gian

43

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

44

Trả về phần thời gian từ đối số được truyền vào

45

Trừ đi thời gian

46

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

47

Thêm khoảng thời gian vào một biểu thức datetime

48

Loại trừ khoảng thời gian từ biểu thức datetime

49

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

50

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

51

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

52

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

53

Trả về ngày tháng hiện tại của UTC

54

Trả về số tuần

55

Trả về chỉ số ngày trong tuần

56

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

57

Trả về năm

58

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


Nội dung chính

ADDDATE (date, interval expr unit), ADDDATE (expr, ngày)

ADDDATE(date, interval expr unit)

Khi được gọi với dạng INTERVAL của đối số thứ hai, ADDDATE() tương tự như hàm DATE_ADD(). Còn hàm SUBDATE() tương tự như hàm DATE_SUB(). Để biết thông tin về đối số đơn vị INTERVAL, xem hàm DATE_ADD().

Ví dụ:

SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

ADDDATE(expr, days)

Khi được gọi với dạng ngày của đối số thứ hai, MySQL xử lý nó như là một số nguyên ngày được thêm vào biểu thức expr.

Ví dụ:

SELECT ADDDATE('1998-01-02', 31);

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

ADDTIME (expr1, expr2)

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

Ví dụ:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

Kết quả

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

CONVERT_TZ (dt, from_tz, to_tz)

Hàm CONVERT_TZ() trong SQL được sử dụng để chuyển đổi giá trị dt từ từ múi giờ đã cho from_tz thành múi giờ to_tz và trả về kết quả. Hàm này trả về NULL nếu các đối số không hợp lệ.

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

CURDATE()

Hàm CURDATE() trong SQL trả về ngày hiện tại có đị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 trong một chuỗi hay một số.

Ví dụ:

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

0

Ví dụ:

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

1


CURRENT_DATE và CURRENT_DATE()

CURRENT_DATE và CURRENT_DATE() là những hàm có chức năng tương tự như hàm CURDATE()


CURTIME()

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

Ví dụ:

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

2

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

3

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

4


CURRENT_TIME và CURRENT_TIME()

CURRENT_TIME và CURRENT_TIME() là những hàm có chức năng tương tự như hàm CURTIME().


CURRENT_TIMESTAMP và CURRENT_TIMESTAMP()

CURRENT_TIMESTAMP và CURRENT_TIMESTAMP() là những hàm có chức năng tương tự như hàm NOW().


DATE(expr)

Hàm DATE() trong SQL trả về phần ngày của date hoặc biểu thức expr.

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

5

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

6


DATEDIFF (expr1, expr2)

Hàm DATEDIFF() trong SQL trả về phần ngày của expr1 trừ đi phần ngày của expr2. Cả hai expr1 và expr2 là ngày hoặc các biểu thức ngày và giờ. Chỉ tính phần ngày của các giá trị được sử dụng trong tính toán.

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

7

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

8


DATE_ADD(date,INTERVAL expr unit),

Hàm DATE_ADD() và DATE_SUB() trong được sử dụng để tính toán ngày. Tham số date là một giá trị DATETIME hoặc DATE xác định ngày bắt đầu. Tham số expr là một biểu thức xác định giá trị INTERVAL để được thêm vào hoặc trừ từ ngày bắt đầu. Các expr là một chuỗi; Nó có thể bắt đầu với dấu '-' cho các khoảng âm.

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

Từ khóa INTERVAL và giá trị unit không phân biệt chữ hoa.

Bảng dưới đây cho thấy định dạng dự kiến của đối số expr cho mỗi giá trị unit.

Giá trị unit Định dạng dự kiến MICROSECOND MICROSECONDS SECOND SECONDS MINUTE MINUTES HOUR HOURS DAY DAYS WEEK WEEKS MONTH MONTHS QUARTER QUARTERS YEAR YEARS 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 HOURS:MINUTES:SECONDS' DAY_MINUTE 'DAYS HOURS:MINUTES' DAY_HOUR 'DAYS HOURS' YEAR_MONTH 'YEARS-MONTHS'

Các giá trị QUARTER và WEEK có sẵn từ MySQL 5.0.0. phiên bản.

Ví dụ:

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

9

Kết quả:

SELECT ADDDATE('1998-01-02', 31);

0

Ví dụ 2:

Ví dụ:

SELECT ADDDATE('1998-01-02', 31);

1

Kết quả:

SELECT ADDDATE('1998-01-02', 31);

2


DATE_FORMAT(date,format)

Hàm DATE_FORMAT() trong SQL được sử dụng để định dạng giá trị date theo chuỗi định dạng.

Các specifier 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ự định nghĩa định dạng.

No. Specifier và Mô tả 1

%a

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

2

%b

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

3

%c

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

4

%D

Ngày tháng có hậu tố tiếng Anh (0th, 1st, 2nd, 3rd,...)

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)

số 10

%I

Giờ (01..12)

11

%i

Số 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 (January..December)

16

%m

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

17

%p

AM hoặc PM

18

%r

Thời gian, 12 giờ (hh:mm:ss theo sau là AM hoặc PM)

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), thứ hai là ngày đầu tiên trong tuần

24

%V

Tuần lễ (01..53), 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), 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 (Sunday..Saturday)

27

%w

Ngày trong tuần (0=Sunday..6=Saturday)

28

%X

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

29

%x

Năm cho tuần, thứ hai là ngày đầu tiên của tuần, số, bốn chữ số; Được sử dụng với %v

30

%Y

Năm với bốn chữ số

31

%y

Năm với hai chữ số

32

%%

Một chữ .%. ký tự

33

%x

Đối với bất kỳ .x. không được liệt kê ở trên

Ví dụ:

Ví dụ:

SELECT ADDDATE('1998-01-02', 31);

3

Kết quả:

SELECT ADDDATE('1998-01-02', 31);

4

Ví dụ 2:

Ví dụ:

SELECT ADDDATE('1998-01-02', 31);

5

Kết quả:

SELECT ADDDATE('1998-01-02', 31);

6


DATE_SUB(date,INTERVAL expr unit)

Hàm DATE_SUB() trong SQL tương tự như chức năng DATE_ADD().


DAY(day)

Hàm DAY() trong SQL tương tự như DAYOFMONTH().


DAYNAME(date)

Hàm DAYNAME() trong SQL trả về tên của ngày trong tuần từ date đã cho.

Ví dụ:

SELECT ADDDATE('1998-01-02', 31);

7

Kết quả:

SELECT ADDDATE('1998-01-02', 31);

8


DAYOFMONTH(date)

Hàm DAYOFMONTH() trong SQL trả về ngày trong tháng từ date đã cho, trong khoảng từ 0 đến 31.

Ví dụ:

SELECT ADDDATE('1998-01-02', 31);

9

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

0


DAYOFWEEK(date)

Hàm DAYOFWEEK() trong SQL trả về chỉ số tuần trong ngày (1 = Sunday, 2 = Monday, ., 7 = Saturday). Các giá trị chỉ số này tương ứng với tiêu chuẩn ODBC.

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

1

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

2


DAYOFYEAR(date)

Hàm DAYOFYEAR() trong SQL trả về ngày trong năm cho ngày, trong khoảng từ 1 đến 366.

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

3

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

4


EXTRACT(unit FROM date)

Hàm EXTRACT() trong SQL sử dụng cùng một kiểu unit định dạng như DATE_ADD() hoặc DATE_SUB(), nhưng lấy ra phần từ ngày chứ không phải là thêm hay trừ datetime.

Ví dụ 1:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

5

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

6

Ví dụ 2:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

7

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

8


FROM_DAYS(N)

Hàm FROM_DAYS() trong SQL được sử dụng để chuyển đổi số N thành một giá trị date cụ thể.

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

9

Kết quả:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

0

Lưu ý - Sử dụng FROM_DAYS() cẩn thận với ngày cũ. Nó không được sử dụng với các giá trị mà trước khi sự ra đời của lịch Gregorian (1582).


FROM_UNIXTIME(unix_timestamp)

FROM_UNIXTIME(unix_timestamp, format)

Hàm FROM_UNIXTIME() trong SQL trả về đại diện của đối số unix_timestamp là một giá trị trong định dạng 'YYYY-MM-DD HH: MM: SS hoặc YYYYMMDHHMMSS, tùy thuộc vào việc hàm được sử dụng trong ngữ cảnh một chuỗi hay một số. Giá trị được thể hiện trong múi giờ hiện tại. Đối số unix_timestamp là một giá trị timestamp nội bộ, được tạo ra bởi hàm UNIX_TIMESTAMP() .

Nếu format được đưa ra, kết quả sẽ được định dạng theo chuỗi format, được sử dụng theo cách tương tự như được liệt kê trong mục nhập cho hàm DATE_FORMAT() .

Ví dụ:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

1

Kết quả:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

2


HOUR(time)

Hàm HOUR() trong SQL trả về giờ từ time đã cho. Phạm vi của giá trị trả về từ 0 đến 23 cho các giá trị thời gian trong ngày. Tuy nhiên, phạm vi của 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.

Ví dụ:

Kết quả:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

3


LAST_DAY(day)

Hàm LAST_DAY() trong SQL có tham số truyền vào là giá trị ngày hoặc giá trị datetime 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ệ.

Ví dụ:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

4

Kết quả:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

5


LOCALTIME và LOCALTIME()

LOCALTIME và LOCALTIME() trong SQL là những hàm có chức năng tương tự hàm NOW().


LOCALTIMESTAMP và LOCALTIMESTAMP()

LOCALTIMESTAMP và LOCALTIMESTAMP() trong SQL là những hàm có chức năng tương tự hàm NOW().


MAKEDATE(year, dayofyear)

Hàm MAKEDATE() trong SQL trả về một ngày với tham số year và dayofyear. Giá trị dayofyear phải lớn hơn 0 nếu không kết quả sẽ là NULL.

Ví dụ:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

6

Kết quả:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

7


MAKETIME(hour, minute, second)

Hàm MAKETIME() trong SQL trả về giá trị time được tính từ các giá trị tham số hour, minute, second.

Ví dụ:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

8

Kết quả:

ELECT ADDTIME('1997-12-31 23:59:59.999999','1 1:1:1.000002');

9


MICROSECOND(expr)

Hàm MICROSECOND() trong SQL trả về microseconds từ biểu thức time hoặc biểu thức thời gian (expr) dưới dạng số trong khoảng từ 0 đến 999999.

Ví dụ:

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

0

Kết quả:

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

1


MINUTE(time)

Hàm MINUTE() trong SQL trả về giá trị phút cho từ time đã cho, trong khoảng từ 0 đến 59.

Ví dụ:

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

2

Kết quả:

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

3


MONTH(date)

Hàm MONTH() trong SQL trả về tháng từ date đã cho, trong khoảng từ 0 đến 12.

Ví dụ:

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

4

Kết quả:

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

5


MONTHNAME(date)

Hàm MONTHNAME() trong SQL trả về tên đầy đủ của tháng từ date đã cho.

Ví dụ:

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

6

Kết quả:

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

7


NOW()

Hàm NOW() trong SQL trả về datetime hiện tại dưới dạng một giá trị trong định dạng 'YYYY-MM-DD HH: MM: SS' hoặc YYYYMMDHHMMSS, tùy thuộc vào việc hàm được sử dụng trong một chuỗi hoặc ngữ cảnh số. Giá trị này được thể hiện trong múi giờ hiện tại.

Ví dụ:

Kết quả:

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

8


PERIOD_ADD(P, N)

Hàm PERIOD_ADD() trong SQL được sử dụng để thêm N tháng đến một khoảng thời gian P (theo định dạng YYMM hoặc YYYYMM). Trả về giá trị theo định dạng YYYYMM. Lưu ý rằng đối số khoảng P không phải là một giá trị ngày tháng.

Ví dụ:

+---------+

DATE_ADD('1997-12-31 23:59:59.999999','1 1:1:1.000002')
+---------------------------------------------------------+
1998-01-02 01:01:01.000001
+---------------------------------------------------------+

9

Kết quả:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

0


PERIOD_DIFF(P1, P2)

Hàm PERIOD_DIFF() trong SQL 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 phải ở định dạng YYMM hoặc YYYYMM. Lưu ý rằng đối số P1 và P2 không phải là giá trị ngày.

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

1

Kết quả:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

2


QUARTER(day)

Hàm QUARTER() trong SQL trả về quý trong năm từ ngày đã cho, trong khoảng từ 1 đến 4.

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

3

Kết quả:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

4


SECOND(time)

Hàm SECOND() trong SQL trả về giá trị giây từ time đã cho, trong khoảng từ 0 đến 59.

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

5

Kết quả:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

6


SEC_TO_TIME(seconds)

Hàm SEC_TO_TIME() trong SQL trả về giá trị được chuyển đổi từ giây đã cho thành giờ, phút và giây có định dạng 'HH: MM: SS' hoặc định dạng HHMMSS, tuỳ thuộc vào việc hàm này được sử dụng trong một chuỗi hoặc ngữ cảnh số.

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

7

Kết quả:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

8


STR_TO_DATE(str, format)

Hàm STR_TO_DATE() trong SQL là nghịch đảo của hàm DATE_FORMAT(). Tham số bao gồm chuỗi str và một chuỗi định dạng format. Hàm STR_TO_DATE() trả về giá trị DATETIME nếu chuỗi định dạng chứa cả phần DATE và TIME. Nếu khác, nó trả về giá trị DATE hoặc TIME nếu chuỗi chỉ chứa các phần DATE hoặc TIME.

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','GMT','MET');

9

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

0


SUBDATE(date, INTERVAL expr unit) và SUBDATE(expr, days)

Khi được gọi với dạng INTERVAL của đối số thứ hai. Hàm SUBDATE() trong SQL là một hàm có chức năng giống hàm DATE_SUB().

Ví dụ:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

1

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

2


SUBTIME(expr1, expr2)

Hàm SUBTIME() trong SQL trả về giá trị time là hiệu của expr1 trừ expr2. Giá trị expr1 là time hoặc một biểu thức datetime, trong khi giá trị expr2 là một biểu thức time.

Ví dụ:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

3

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

4


SYSDATE()

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

Ví dụ:

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

5


TIME(expr)

Hàm TIME() trong SQL trả về giá trị thời gian của một time hoặc expr biểu thức datetime đã cho và giá trị trả về là một chuỗi.

Ví dụ:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

6

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

7


TIMEDIFF(expr1, expr2)

Hàm TIMEDIFF() trong SQL trả về thời gian khác nhau giữa 2 biểu thức thời gian đã cho expr1 và expr2. Các giá trị expr1 và expr2 là các biểu thức time hoặc datetime, nhưng cả hai đều phải có cùng kiểu.

Ví dụ:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

8

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','GMT','MET')
+---------------------------------------------------------+
2004-01-01 13:00:00
+---------------------------------------------------------+

9


TIMESTAMP(expr),

TIMESTAMP(expr1, expr2)

Hàm TIMESTAMP() trong SQL có 2 dạng. Với một đối số duy nhất, hàm này trả về biểu thức datetime với đối số expr có thể là date hoặc datetime. Với hai đối số, nó cộng thêm thời gian từ biểu thức expr2 đến date hoặc datetime của expr1 và trả về kết quả như một giá trị datetime.

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

0

Kết quả:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

1


TIMESTAMPADD(unit, interval, datetime_expr)

Hàm TIMESTAMPADD() trong SQL được sử dụng để thêm một khoảng thời gian (interval) vào biểu thức date hoặc datetime datetime_expr. Đơn vị (unit) cho khoảng thời gian được cho bởi các đối số unit. Đối số unit nên là một trong những giá trị sau đây:

  • FRAC_SECOND
  • SECOND, MINUTE
  • HOUR, DAY
  • WEEK
  • MONTH
  • QUARTER
  • YEAR

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

Ví dụ: DAY và SQL_TSI_DAY như vậy cũng là hợp lệ.

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

2

Kết quả:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

3


TIMESTAMPDIFF(unit, datetime_expr1, datetime_expr2)

Hàm TIMESTAMPDIFF() trong SQL trả về một số nguyên thể hiện sự khác nhau giữa hai biểu thức date hoặc datetime (datetime_expr1 và datetime_expr2). Tham số unit được sử dụng để định nghĩa đơn vị của giá trị được trả về. Các giá trị hợp lệ cho unit giống như các giá trị được liệt kê trong mô tả của hàm TIMESTAMPADD().

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

4

Kết quả:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

5


TIME_FORMAT(time, format)

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

Nếu giá trị time chứa một phần giờ cao hơn 23, thì các định dạng định dạng %H và %k cho một giá trị lớn hơn phạm vi thông thường từ 0 đến 23. Các định dạng giờ khác tạo ra giá trị giờ theo kiểu 12 giờ.

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

6

Kết quả:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

7


TIME_TO_SEC(time)

Hàm TIME_TO_SEC() trong SQL trả về số giây được chuyển đổi từ đối số time.

Ví dụ:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

8

Kết quả:

SELECT CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00');

9


TO_DAYS(date)

Hàm TO_DAYS() trong SQL trả về số ngày (số ngày kể từ năm 0) từ date đã cho.

Ví dụ:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

0

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

1


UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)

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

Ví dụ 1:

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

2

Ví dụ 2:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

3

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

4


UTC_DATE, UTC_DATE()

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

Ví dụ:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

5

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

6


UTC_TIME, UTC_TIME()

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

Ví dụ:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

7

Kết quả:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

8


UTC_TIMESTAMP, UTC_TIMESTAMP()

Hàm UTC_TIMESTAMP() trong SQL trả về ngày tháng hiện tại của UTC là một giá trị trong đị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 một chuỗi hay trong một ngữ cảnh số.

Ví dụ:

+---------+

CONVERT_TZ('2004-01-01 12:00:00','+00:00','+10:00')
+---------------------------------------------------------+
2004-01-01 22:00:00
+---------------------------------------------------------+

9

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

00


WEEK(date, mode)

Hàm WEEK() trong SQL trả về số tuần cho ngày tháng. Hình thức hai đối số của WEEK() cho phép bạn xác định liệu tuần bắt đầu vào Sunday hay Monday và giá trị trả về có nằm trong khoảng từ 0 đến 53 hay từ 1 đến 53. Nếu không sử dụng mode, giá trị của biến hệ thống default_week_format được sử dụng.

Mode Ngày đầu tuần Phạm vi Tuần 1 là tuần đầu tiên. 0 Sunday 0-53 Với một Chủ Nhật trong năm nay 1 Monday 0-53 Với hơn 3 ngày trong năm nay 2 Sunday 1-53 Với một Chủ Nhật trong năm nay 3 Monday 1-53 Với hơn 3 ngày trong năm nay 4 Sunday 0-53 Với hơn 3 ngày trong năm nay 5 Monday 0-53 Với một thứ Hai trong năm nay 6 Sunday 1-53 Với hơn 3 ngày trong năm nay 7 Monday 1-53 Với một thứ Hai trong năm nay

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

01

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

02


WEEKDAY(date)

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

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

03

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

04


WEEKOFYEAR(date)

Hàm WEEKOFYEAR() trong SQL trả về chỉ số tuần của date đã cho là một con số trong khoảng từ 1 đến 53. WEEKOFYEAR() là một chức năng tương đương với WEEK(date, mode) với mode = 3.

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

05

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

06


YEAR(date)

Hàm YEAR() trong SQL trả về năm từ date đã cho, nó trả về NULL khi date không hợp lệ.

Ví dụ:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

07

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

08


YEARWEEK(date), YEARWEEK(date, mode)

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

Ví dụ 1: Năm trong kết quả trả về giống với năm trong đối số date

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

09

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

10

Ví dụ 2: Năm trong kết quả trả về khác với năm trong đối số date

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

11

Kết quả:

+---------+

DATE_ADD('1998-01-02', INTERVAL 31 DAY)
+---------------------------------------------------------+
1998-02-02
+---------------------------------------------------------+

12

Lưu ý: Số tuần trả về từ YEARWEEK() khác với giá trị mà WEEK() trả về (0) đối với đối số tùy chọn 0 hoặc 1. Hàm WEEK() trả về tuần trong ngữ cảnh của năm của date đã cho.