Cách sử dụng hàm DATEDIFF (Transact-SQL) để trừ 2 khoảng thời gian trong sql server. Đề tính được số khoảng thời gian ( giờ, phút, giây, ngày, tháng,..) giữ 2 mốc thời gian bạn có thể sử dụng hàm DATEDIFF.
Cú phápDATEDIFF ( datepart , startdate , enddate )
Startdata: thời gian bắt đầu, enddata:thời gian kết thúc, là các kiểu dữ liệu time, date, smalldatetime, datetime, datetime2, datetimeoffset . Trong hàm DATEDIFF chúng ta sẽ lấy enddate trừ cho startdate
Và dateapart như sau
datepart | Những chữ viết tắt |
---|---|
year | yy, yyyy |
quarter | qq, q |
month | mm, m |
dayofyear | dy, y |
day | dd, d |
week | wk, ww |
hour | hh |
minute | mi, n |
second | ss, s |
millisecond | ms |
microsecond | mcs |
nanosecond | ns |
Các Ví dụ cách dùng hàm DATEDIFF
SELECT DATEDIFF(year, '2015-12-31 23:59:59.9999999'
, ‘2006-01-01 00:00:00.0000000’);
SELECT DATEDIFF(quarter, ‘2015-12-31 23:59:59.9999999’
, ‘2006-01-01 00:00:00.0000000’);
SELECT DATEDIFF(month, ‘2015-12-31 23:59:59.9999999’
, ‘2006-01-01 00:00:00.0000000’);
SELECT DATEDIFF(dayofyear, ‘2015-12-31 23:59:59.9999999’
, ‘2006-01-01 00:00:00.0000000’);
SELECT DATEDIFF(day, ‘2015-12-31 23:59:59.9999999’
, ‘2006-01-01 00:00:00.0000000’);
SELECT DATEDIFF(week, ‘2015-12-31 23:59:59.9999999’
, ‘2006-01-01 00:00:00.0000000’);
SELECT DATEDIFF(hour, ‘2015-12-31 23:59:59.9999999’
, ‘2006-01-01 00:00:00.0000000’);
SELECT DATEDIFF(minute, ‘2015-12-31 23:59:59.9999999’
, ‘2006-01-01 00:00:00.0000000’);
SELECT DATEDIFF(second, ‘2015-12-31 23:59:59.9999999’
, ‘2006-01-01 00:00:00.0000000’);
SELECT DATEDIFF(millisecond, ‘2015-12-31 23:59:59.9999999’
, ‘2006-01-01 00:00:00.0000000’);
Lưu ý
Việc thiết lập SET DATEFIRST không có tác dụng trên DATEDIFF. DATEDIFF luôn luôn sử dụng ngày Chủ nhật là ngày đầu tiên trong tuần để đảm bảo chức năng là xác định.
Pingback: Cách dùng hàm date_part để trừ 2 khoảng thời gian trong PostgreSQL | Phạm Duy Anh