A
- AccessControlEntry.ConditionToIdentities
 - Access.Database
 - ActiveDirectory.Domains
 - AdobeAnalytics.Cubes
 - AdoDotNet.DataSource
 - AdoDotNet.Query
 - AnalysisServices.Database
 - AnalysisServices.Databases
 - AzureStorage.BlobContents
 - AzureStorage.Blobs
 - AzureStorage.DataLake
 - AzureStorage.DataLakeContents
 - AzureStorage.Tables
 
B
- BinaryFormat.Binary
 - BinaryFormat.Byte
 - BinaryFormat.ByteOrder
 - BinaryFormat.Choice
 - BinaryFormat.Decimal
 - BinaryFormat.Double
 - BinaryFormat.Group
 - BinaryFormat.Length
 - BinaryFormat.List
 - BinaryFormat.Null
 - BinaryFormat.Record
 - BinaryFormat.SignedInteger16
 - BinaryFormat.SignedInteger32
 - BinaryFormat.SignedInteger64
 - BinaryFormat.Single
 - BinaryFormat.Text
 - BinaryFormat.Transform
 - BinaryFormat.UnsignedInteger16
 - BinaryFormat.UnsignedInteger32
 - BinaryFormat.UnsignedInteger64
 - BinaryFormat.7BitEncodedSignedInteger
 - BinaryFormat.7BitEncodedUnsignedInteger
 - Binary data
 - Binary.ApproximateLength
 - Binary.Buffer
 - Binary.Combine
 - Binary.Compress
 - Binary.Decompress
 - Binary.From
 - Binary.FromList
 - Binary.FromText
 - Binary.InferContentType
 - Binary.Length
 - Binary.Range
 - Binary.Split
 - Binary.ToList
 - Binary.ToText
 - Binary.View
 - Binary.ViewError
 - Binary.ViewFunction
 - Byte.From
 
C
- Cdm.Contents
 - Character.FromNumber
 - Character.ToNumber
 - Combiner.CombineTextByDelimiter
 - Combiner.CombineTextByEachDelimiter
 - Combiner.CombineTextByLengths
 - Combiner.CombineTextByPositions
 - Combiner.CombineTextByRanges
 - Comparer.FromCulture
 - Comparer.Ordinal
 - Comparer.OrdinalIgnoreCase
 - Controlling byte order
 - Csv.Document
 - Cube.AddAndExpandDimensionColumn
 - Cube.AddMeasureColumn
 - Cube.ApplyParameter
 - Cube.AttributeMemberId
 - Cube.AttributeMemberProperty
 - Cube.CollapseAndRemoveColumns
 - Cube.Dimensions
 - Cube.DisplayFolders
 - Cube.MeasureProperties
 - Cube.MeasureProperty
 - Cube.Measures
 - Cube.Parameters
 - Cube.Properties
 - Cube.PropertyKey
 - Cube.ReplaceDimensions
 - Cube.Transform
 - Currency.From
 
D
- DateTime.AddZone
 - DateTime.Date
 - DateTime.FixedLocalNow
 - DateTime.From
 - DateTime.FromFileTime
 - DateTime.FromText
 - DateTime.IsInCurrentHour
 - DateTime.IsInCurrentMinute
 - DateTime.IsInCurrentSecond
 - DateTime.IsInNextHour
 - DateTime.IsInNextMinute
 - DateTime.IsInNextNHours
 - DateTime.IsInNextNMinutes
 - DateTime.IsInNextNSeconds
 - DateTime.IsInNextSecond
 - DateTime.IsInPreviousHour
 - DateTime.IsInPreviousMinute
 - DateTime.IsInPreviousNHours
 - DateTime.IsInPreviousNMinutes
 - DateTime.IsInPreviousNSeconds
 - DateTime.IsInPreviousSecond
 - DateTime.LocalNow
 - DateTime.Time
 - DateTime.ToRecord
 - DateTime.ToText
 - Date.AddDays
 - Date.AddMonths
 - Date.AddQuarters
 - Date.AddWeeks
 - Date.AddYears
 - Date.Day
 - Date.DayOfWeek
 - Date.DayOfWeekName
 - Date.DayOfYear
 - Date.DaysInMonth
 - Date.EndOfDay
 - Date.EndOfMonth
 - Date.EndOfQuarter
 - Date.EndOfWeek
 - Date.EndOfYear
 - Date.From
 - Date.FromText
 - Date.IsInCurrentDay
 - Date.IsInCurrentMonth
 - Date.IsInCurrentQuarter
 - Date.IsInCurrentWeek
 - Date.IsInCurrentYear
 - Date.IsInNextDay
 - Date.IsInNextMonth
 - Date.IsInNextNDays
 - Date.IsInNextNMonths
 - Date.IsInNextNQuarters
 - Date.IsInNextNWeeks
 - Date.IsInNextNYears
 - Date.IsInNextQuarter
 - Date.IsInNextWeek
 - Date.IsInNextYear
 - Date.IsInPreviousDay
 - Date.IsInPreviousMonth
 - Date.IsInPreviousNDays
 - Date.IsInPreviousNMonths
 - Date.IsInPreviousNQuarters
 - Date.IsInPreviousNWeeks
 - Date.IsInPreviousNYears
 - Date.IsInPreviousQuarter
 - Date.IsInPreviousWeek
 - Date.IsInPreviousYear
 - Date.IsInYearToDate
 - Date.IsLeapYear
 - Date.Month
 - Date.MonthName
 - Date.QuarterOfYear
 - Date.StartOfDay
 - Date.StartOfMonth
 - Date.StartOfQuarter
 - Date.StartOfWeek
 - Date.StartOfYear
 - Date.ToRecord
 - Date.ToText
 - Date.WeekOfMonth
 - Date.WeekOfYear
 - Date.Year
 - DB2.Database
 - Decimal.From
 - Diagnostics.ActivityId
 - Diagnostics.Trace
 - DirectQueryCapabilities.From
 - Double.From
 - Duration.Days
 - Duration.From
 - Duration.FromText
 - Duration.Hours
 - Duration.Minutes
 - Duration.Seconds
 - Duration.ToRecord
 - Duration.TotalDays
 - Duration.TotalHours
 - Duration.TotalMinutes
 - Duration.TotalSeconds
 - Duration.ToText
 
E
F
G
H
I
L
- Lines.FromBinary
 - Lines.FromText
 - Lines.ToBinary
 - Lines.ToText
 - List.Accumulate
 - List.AllTrue
 - List.Alternate
 - List.AnyTrue
 - List.Average
 - List.Buffer
 - List.Combine
 - List.ConformToPageReader
 - List.Contains
 - List.ContainsAll
 - List.ContainsAny
 - List.Count
 - List.Covariance
 - List.Dates
 - List.DateTimes
 - List.DateTimeZones
 - List.Difference
 - List.Distinct
 - List.Durations
 - List.FindText
 - List.First
 - List.FirstN
 - List.Generate
 - List.InsertRange
 - List.Intersect
 - List.IsDistinct
 - List.IsEmpty
 - List.Last
 - List.LastN
 - List.MatchesAll
 - List.MatchesAny
 - List.Max
 - List.MaxN
 - List.Median
 - List.Min
 - List.MinN
 - List.Mode
 - List.Modes
 - List.NonNullCount
 - List.Numbers
 - List.Percentile
 - List.PositionOf
 - List.PositionOfAny
 - List.Positions
 - List.Product
 - List.Random
 - List.Range
 - List.RemoveFirstN
 - List.RemoveItems
 - List.RemoveLastN
 - List.RemoveMatchingItems
 - List.RemoveNulls
 - List.RemoveRange
 - List.Repeat
 - List.ReplaceMatchingItems
 - List.ReplaceRange
 - List.ReplaceValue
 - List.Reverse
 - List.Select
 - List.Single
 - List.SingleOrDefault
 - List.Skip
 - List.Sort
 - List.Split
 - List.StandardDeviation
 - List.Sum
 - List.Times
 - List.Transform
 - List.TransformMany
 - List.Union
 - List.Zip
 - Logical.From
 - Logical.FromText
 
Understanding the #datetime function
The #datetime function is a part of the M language, which is used to create custom functions in Power Query. The function takes three arguments – year, month, and day – and returns a datetime value. Here is the syntax of the #datetime function:
#datetime(year, month, day)
Here, year, month, and day are integer values, representing the year, month, and day of the date you want to create. For example, if you want to create a datetime value for 1st January 2022, you would use the following code:
#datetime(2022, 1, 1)
The M code behind the #datetime function
The M code behind the #datetime function is relatively simple. Here is the code:
DateTime.Local(year, month, day, 0, 0, 0)
As you can see, the #datetime function uses the DateTime.Local function, which is a part of the M language. The DateTime.Local function takes six arguments – year, month, day, hour, minute, and second – and returns a datetime value. In the #datetime function, we only use the first three arguments, as we are not concerned with the time component of the datetime value.
Using the DateTime.Local function
The DateTime.Local function is a powerful function that can be used to create datetime values in a variety of ways. Here are some examples:
Creating a datetime value for the current date and time
You can use the DateTime.Local function to create a datetime value for the current date and time, like this:
DateTime.LocalNow()
This will return a datetime value for the current date and time, using your local time zone.
Creating a datetime value from a text string
If you have a text string that represents a datetime value, you can use the DateTime.Local function to convert it to a datetime value. Here is an example:
DateTime.LocalFromText("2022-01-01 12:00:00")
This will return a datetime value for 1st January 2022, 12:00:00 PM.
Creating a datetime value from a Unix timestamp
If you have a Unix timestamp – which is the number of seconds since 1st January 1970 – you can use the DateTime.Local function to convert it to a datetime value. Here is an example:
DateTime.LocalFromUnix(1641024000)
This will return a datetime value for 1st January 2022, 12:00:00 AM.
In this article, we looked at the M code behind the #datetime function, and how it works. We also explored the DateTime.Local function, which is used by the #datetime function to create datetime values. With this knowledge, you can create custom functions in Power Query that use datetime values effectively.


