Duh's avatar
Duh
Frequent Visitor
10 months ago

Refresh Date/ Time: Auto swich between BST & GMT

A table that uses DateTime.LocalNow() to dynamically change the time from BST to GMT and vice versa.

createOrReplace

	table Refresh_DateTime

		column RefreshDate
			dataType: dateTime
			formatString: General Date
			summarizeBy: none
			sourceColumn: RefreshDate

			annotation SummarizationSetBy = Automatic

		column Local_Date_Time
			dataType: dateTime
			formatString: dd/mm/yy hh:nn
			summarizeBy: none
			sourceColumn: Local_Date_Time

			annotation SummarizationSetBy = Automatic

			annotation PBI_FormatHint = {"isCustom":true}

		partition Refresh_DateTime = m
			mode: import
			source = ```
					let
					    Source = #table(type table[RefreshDate=datetime], {{DateTime.LocalNow()}}),
					    Test = #table(type table[RefreshDate=datetime], {{#datetime(2026,10,25,11,0,0)}}),
					  // To test, change the "Source" reference to "Test"
					  AddBST = Table.AddColumn(Source, "Local_Date_Time", each 
					        let
					            dt = [RefreshDate],
					            year = Date.Year(dt),
					            dstStart = Date.StartOfWeek(#date(year, 3, 31), Day.Sunday),
					            dstEnd = Date.StartOfWeek(#date(year, 10, 31), Day.Sunday),
					            isDST = Date.From(dt) >= dstStart and Date.From(dt) < dstEnd,
					            offset = if isDST then 1 else 0,
					            bstTime = dt + #duration(0, offset, 0, 0)
					        in
					            bstTime,
					        type datetime
					    )
					in
					    AddBST
					```

		annotation PBI_NavigationStepName = Navigation

		annotation PBI_ResultType = Table

 

 

No RepliesBe the first to reply