Các hàm DateAdd, DateDiff và TimeZoneOffset

Hàm Áp dụng cho
NgàyThêm Ứng dụng Canvas Dataverse cột công thức Luồng máy tính để bàn Ứng dụng dựa trên mô hình Power Platform CLI
Ngày tháng chênh lệch Ứng dụng Canvas Dataverse cột công thức Luồng máy tính để bàn Ứng dụng dựa trên mô hình Power Platform CLI
Múi giờ bù trừ Ứng dụng Canvas Luồng máy tính để bàn Ứng dụng dựa trên mô hình Power Platform CLI

Thêm hoặc tìm khoảng thời gian giữa các giá trị ngày/giờ và chuyển đổi giữa giờ địa phương và giờ UTC.

Mô tả

Hàm DateAdd thêm một số đơn vị vào một giá trị ngày/giờ. Hàm trả về kết quả là một giá trị ngày/giờ mới. Bạn cũng có thể trừ một số đơn vị vào giá trị ngày/giờ bằng cách chỉ định giá trị âm.

Hàm DateDiff trả về khoảng thời gian giữa hai giá trị ngày/giờ. Kết quả là một số nguyên.

Đối với cả hai hàm, đơn vị có thể là TimeUnit.Mili giây, TimeUnit.Giây, TimeUnit.Phút, TimeUnit.Giờ, TimeUnit.Ngày, TimeUnit.Tháng, TimeUnit.Quarters hoặc TimeUnit.Năm. Theo mặc định, cả hai hàm đều sử dụng TimeUnit.Days làm đơn vị.

Hàm TimeZoneOffset trả về số phút giữa giờ địa phương của người dùng và giờ UTC (Giờ phối hợp quốc tế).

Bạn có thể dùng hàm DateAdd với hàm TimeZoneOffset để chuyển đổi giữa giờ địa phương của người dùng và giờ UTC (Giờ phối hợp quốc tế). Việc kết hợp với hàm TimeZoneOffset sẽ chuyển đổi giờ địa phương sang giờ UTC và việc trừ đi (thêm giá trị âm) sẽ chuyển đổi từ giờ UTC sang giờ địa phương.

Ngoài ra, hãy xem kiểu dữ liệu Ngày, Giờ và Ngày giờcách làm việc với ngày và giờ để biết thêm thông tin.

Cú pháp

NgàyThêm( NgàyGiờ, Cộng [, Đơn vị ] )

  • Ngày giờ - Bắt buộc. Giá trị ngày/giờ cần xử lý.
  • Bổ sung - Bắt buộc. Số (bằngUnits (đơn vị)) sẽ thêm vào DateTime.
  • Đơn vị - Tùy chọn. Loại Đơn vị cần thêm: Đơn vị thời gian.Mili giây, Đơn vị thời gian.Giây, Đơn vị thời gian.Phút, Đơn vị thời gian.Giờ, Đơn vị thời gian.Ngày, Đơn vị thời gian.Tháng, Đơn vị thời gian.Quarters hoặc Đơn vị thời gian.Năm. Nếu không được chỉ định, TimeUnit.Days sẽ được sử dụng.

DateDiff( StartDateTime, EndDateTime [, Đơn vị ] )

  • StartDateTime - Bắt buộc. Giá trị ngày giờ bắt đầu.
  • EndDateTime - Bắt buộc. Giá trị ngày giờ kết thúc.
  • Đơn vị - Tùy chọn. Loại Đơn vị để trừ: Đơn vị thời gian.Mili giây, Đơn vị thời gian.Giây, Đơn vị thời gian.Phút, Đơn vị thời gian.Giờ, Đơn vị thời gian.Ngày, Đơn vị thời gian.Tháng, Đơn vị thời gian.Quarters hoặc Đơn vị thời gian.Năm. Nếu không được chỉ định, TimeUnit.Days sẽ được sử dụng.

TimeZoneOffset( [ NgàyGiờ ] )

  • Ngày giờ - Tùy chọn. Giá trị ngày/giờ cần trả về phần bù. Theo mặc định, hàm sử dụng ngày/giờ hiện tại.

Ví dụ

Trong tất cả các ví dụ sau, giả sử rằng ngày và giờ hiện tại là July 15, 2013, 1:02 PM (13:02 ngày 15 tháng 7 năm 2013).

Hàm DateAdd đơn giản

Công thức Mô tả Kết quả
Văn bản( NgàyThêm( Bây giờ(), 3 ),
"dd-mm-yyyy hh:mm" )
Thêm ba ngày (đơn vị mặc định) vào ngày và giờ hiện tại. "18-07-2013 13:02"
Văn bản( NgàyThêm( Bây giờ(), 4, Đơn vị thời gian.Giờ ),
"dd-mm-yyyy hh:mm" )
Thêm bốn giờ vào ngày và giờ hiện tại. "15-07-2013 17:02"
Văn bản( NgàyThêm( Hôm nay(), 1, Đơn vị thời gian.Tháng ),
"dd-mm-yyyy hh:mm" )
Thêm một tháng vào ngày hiện tại, không có thời gian như Today sẽ không trả về thành phần thời gian. "15-08-2013 00:00"
Văn bản( NgàyThêm( Bây giờ(), ‑30, Đơn vị thời gian.Phút ),
"dd-mm-yyyy hh:mm" )
Trừ 30 phút vào ngày và giờ hiện tại. "15-07-2013 12:32"

Hàm DateDiff đơn giản

Công thức Mô tả Kết quả
DateDiff(Bây giờ(), DateValue("1/1/2014") ) Trả về sự khác biệt giữa hai đơn vị theo đơn vị mặc định là TimeUnit.Days 170
DateDiff(Bây giờ(), DateValue("1/1/2014"), TimeUnit.Months) Trả về sự khác biệt giữa hai giá trị trong TimeUnit.Months 6
DateDiff(Bây giờ(), Hôm nay(), Đơn vị thời gian.Phút) Trả về khoảng thời gian giữa ngày/giờ hiện tại và chỉ ngày hiện tại (không có thời gian) tính bằng phút. Vì Now sau Today, nên hàm trả về giá trị âm. -782

Sự khác biệt của ngày với kết quả phân số

Hàm DateDiff chỉ trả về một số nguyên của các đơn vị bị trừ và độ chính xác được đưa ra theo đơn vị được chỉ định. Để tính toán chênh lệch với độ chính xác cao hơn, hãy sử dụng một đơn vị nhỏ hơn và chuyển đổi kết quả một cách thích hợp, như trong các ví dụ bên dưới.

Công thức Mô tả Kết quả
DateDiff(Giá trị thời gian("09:45:00"), Giá trị thời gian("10:15:36"), Đơn vị thời gian. Giờ) Các phút/giây được bỏ qua, sự chênh lệch dựa trên thời gian tính đến giờ. 1
DateDiff(Giá trị thời gian("09:45:00"), Giá trị thời gian("10:15:36"), Đơn vị thời gian. Phút)/60 Số phút được sử dụng để tính chênh lệch, và kết quả được chia cho 60 để có hiệu số giờ. 0.5
DateDiff(Giá trị thời gian("09:45:00"), Giá trị thời gian("10:15:36"), Đơn vị thời gian. Giây )/3600 Số phút và giây được sử dụng để tính chênh lệch, và kết quả được chia cho 3600 để có hiệu số giờ. 0.51

Chuyển sang giờ UTC

Để chuyển sang giờ UTC (Giờ phối hợp quốc tế), hãy thêm TimeZoneOffset cho thời gian cụ thể.

Ví dụ: hãy tưởng tượng ngày và giờ hiện tại là July 15, 2013, 1:02 PM (13:00 ngày 15 tháng 7 năm 2013) theo Giờ ánh sáng ngày Thái Bình Dương (PDT, UTC-7). Để xác định thời gian hiện tại theo giờ UTC, hãy sử dụng:

  • DateAdd(Bây giờ(), TimeZoneOffset(), TimeUnit.Minutes)

TimeZoneOffset mặc định là thời gian hiện tại, do đó bạn không cần phải truyền đối số cho nó.

Để xem kết quả, hãy sử dụng hàm Text với định dạng dd-mm-yyyy hh:mm, để nhận kết quả là 15-07-2013 20:02.

Chuyển từ giờ UTC

Để chuyển từ giờ UTC, hãy trừ TimeZoneOffset (bằng cách thêm giá trị âm) cho thời gian cụ thể.

Ví dụ: hãy tưởng tượng ngày và giờ UTC July 15, 2013, 8:02 PM (20:02 ngày 15 tháng 7 năm 2013) được lưu trữ trong một biến có tên StartTime (Thời gian bắt đầu). Để điều chỉnh thời gian cho múi giờ của người dùng, hãy sử dụng:

  • DateAdd(Thời gian bắt đầu, −TimeZoneOffset(Thời gian bắt đầu), TimeUnit.Phút)

Lưu ý dấu âm trước TimeZoneOffset để trừ phần bù (chứ không phải cộng thêm).

Để xem kết quả, hãy sử dụng hàm Text với định dạng dd-mm-yyyy hh:mm, để nhận kết quả là 15-07-2013 13:02 nếu bạn đang ở Giờ ánh sáng ngày Thái Bình Dương.