Chia sẻ qua


DateAdd, DateDiffvà các TimeZoneOffset hàm

Hàm Áp dụng cho
DateAdd
DateDiff
Ứng dụng Canvas Copilot Studio Desktop flows Dataverse formula columns Các ứng dụng dựa trên mô hình Power Platform CLI Dataverse functions Power Pages
TimeZoneOffset Ứng dụng Canvas Copilot Studio Desktop dòng ứng dụng dựa trên mô hình Power Platform CLI Chức năng đảo dữ liệu Power Pages
Hàm Áp dụng cho
DateAdd
DateDiff
TimeZoneOffset

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 cộng 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ề chênh lệch 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ờ Quốc tế Phối hợp).

Bạn có thể sử DateAdd dụng với để TimeZoneOffset chuyển đổi giữa giờ địa phương của người dùng và UTC (Giờ Quốc tế Phối hợp). Cộng TimeZoneOffset thêm sẽ chuyển đổi giờ địa phương thành UTC và trừ nó (cộng âm) sẽ chuyển đổi từ 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

DateAdd( DateTime, Addition [, Units ] )

  • 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 [, Units ] )

  • 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ị cần 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( [ DateTime ] )

  • 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).

Giản dị DateAdd

Công thức Mô tả Kết quả
Text( DateAdd( Now(), 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"
Text( DateAdd( Now(), 4, TimeUnit.Hours ),
"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"
Text( DateAdd( Today(), 1, TimeUnit.Months ),
"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"
Text( DateAdd( Now(), -30, TimeUnit.Minutes ),
"dd-mm-yyyy hh:mm" )
Trừ 30 phút vào ngày và giờ hiện tại. "15-07-2013 12:32"

Giản dị DateDiff

Công thức Mô tả Kết quả
DateDiff( Now(), DateValue("01/01/2014") ) Trả về sự khác biệt giữa hai đơn vị theo đơn vị mặc định là TimeUnit.Days 170
DateDiff( Now(), DateValue("01/01/2014"), TimeUnit.Months ) Trả về sự khác biệt giữa hai giá trị trong TimeUnit.Months 6
DateDiff( Now(), Today(), TimeUnit.Minutes ) 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 chỉ DateDiff trả về số nguyên của các đơn vị được trừ và độ chính xác được cung cấp trong đơn vị đã xác đị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( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Hours ) 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( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Minutes )/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( TimeValue("09:45:00"), TimeValue("10:15:36"), TimeUnit.Seconds )/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 đổi sang UTC (Giờ Quốc tế Phối hợp), hãy thêm thời TimeZoneOffset gian đã cho.

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( Now(), TimeZoneOffset(), TimeUnit.Minutes )

TimeZoneOffset mặc định cho thời gian hiện tại, vì vậy bạn không cần truyền tham đối.

Để 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 đổi từ UTC, trừ (bằng TimeZoneOffset cách cộng số âm) cho thời gian đã cho.

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( StartTime, −TimeZoneOffset( StartTime ), TimeUnit.Minutes )

Lưu ý dấu âm trước TimeZoneOffset để trừ bù trừ chứ không phải là thêm 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 13:02 nếu bạn đang ở Giờ ánh sáng ngày Thái Bình Dương.