Unix power bi как перевести дату
Перейти к содержимому

Unix power bi как перевести дату

  • автор:

Конвертируем время из формата UNIX

Работая с API разных систем, часто приходится иметь дело с форматом даты-времени типа UNIX.

В таком формате дата выглядит как число.

Например, 28 октября 2020 года 16:11:29 в формате UNIX будут выглядеть: «1603901489»

К сожалению, Power BI не может работать с таким форматом.

Преобразовать такие данные в привычный формат средствами Power Query оказалось довольно просто.

Для этого в таблицу потребуется добавить пользовательский (расчётный) столбец с формулой:

#datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, [UnixTime]/1000)

Вместо «UnixTime» поставьте имя вашего столбца с датой в формате UNIX.

Бывает, что API возвращает больше цифр, чем в примере выше. Это значит, что время содержит ещё и миллисекунды.

Представленная выше формула без каких-либо корректировок прекрасно конвертирует и такие данные.

Статья подготовлена по материалам Интернета.

Convert UNIX Timestamp to DATE or DATETIME format in Power BI

DAX, Power Query / M comment 3 Created with Sketch Beta.

This post is also available in: German

If you find a date or datetime format in UNIX format, the first thing you wonder is what it is all about or how you can display it “normally”. This is because the UNIX date format looks like this:

1604135115

Contents

What exactly is UNIX Timestamp?

To find a way to convert this, we first need to understand what the number means. The UNIX timestamp is the number of seconds since January 01, 1970. You can read exactly about why it is like this in the Wikipedia article. I want to focus on finding a solution for this problem.

In the above example, 1604135115 seconds after 01 January 1970 is 31 October 2020 at 09:05 AM and 15 seconds.

Update February 20, 2023: The classic UNIX timestamp is, as said, the number of seconds since 01/01/1970. However, there are some programming languages and APIs that specify the timestamp in milliseconds since 01/01/1970. In such a case, the solutions given below must simply be divided by 1000. Some examples of this can be found at the end of the article. The timestamp for a value in 2023 is then not 10-digit as indicated above, but 13-digit. However, this is not a classic UNIX timestamp.

Transformation in Power Query

As a test scenario, we use the following system logs, since UNIX timestamp often appears in logs or similar technical data:

Data with UNIX timestamp as date and time format

The easiest way to convert the UNIX timestamp is to do exactly what the UNIX timestamp does. We add the specified number of seconds to January 01, 1970. To do this, we create the date 01 January 1970 as a new column using the #datetime function and then add the number of seconds using the #durantion function:

#datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, [TimeStamp])

Add new column as DateTime

The new column contains the specific date and time as datetime format:

New column in datetime format

The original TimeStamp column can now be deleted if it is not needed in the report. From now on we can continue working with the real date.

Converting UNIX Timestamp with DAX within Power BI

If a conversion to Power Query would not be possible for some reason, then there is still the possibility to do this in DAX. My first option would be to do this as a Calculated Column. However, I would generally do this conversion directly in Power Query, since it is part of the data loading and transformation process.

However, we need one more calculation than in Power Query. Let’s start again by creating the initial date 01 January 1970 with the DATE function:

DATE(1970, 01, 01)

Now we have to add the timestamp seconds. However, this is not possible by simply using the TIME function. We must therefore first calculate the timestamp down to the number of days and the time:

UnixTimestamp = tTimestamp_DAX[TimeStamp] / ( 60 * 60 * 24 ) 

Finally, we need to add to the start value the time duration calculated down to days and time:

DateTime = VAR UnixTimestamp = tTimestamp_DAX[TimeStamp] / ( 60 * 60 * 24 ) RETURN DATE( 1970, 01, 01 ) + UnixTimestamp

We can now use the new column in the report. We should hide the timestamp column for a better overview in the frontend:

image 7

Modifications for timestamp in millisecond format

As stated in the update above, there are also programming languages that specify the timestemp in milliseconds instead of seconds since 01/01/1970. In this case, the formulas change as follows:

#datetime(1970, 1, 1, 0, 0, 0) + #duration(0, 0, 0, [TimeStamp] / 1000 )

Or for the DAX approach:

DateTime = VAR UnixTimestamp = ( tTimestamp_DAX[TimeStamp] / 1000 ) / ( 60 * 60 * 24 ) RETURN DATE( 1970, 01, 01 ) + UnixTimestamp
Denis Selimovic

As a user from the very beginning, Denis Selimovic is passionate about Power BI and everything related to it. In his blog WhatTheFact.bi, he writes about the latest developments in Power BI and provides tips and tricks on the subject. Besides being a Power BI enthusiast, blog author, speaker and principal consultant, he is also co-organizer of the Meetup Power BI User Group Switzerland.

Get-Date

Командлет Get-Date получает объект DateTime , представляющий текущую дату или указанную дату. Get-Date может форматировать дату и время в нескольких форматах .NET и UNIX. Можно использовать Get-Date для создания строки символов даты или времени, а затем отправки строки другим командлетам или программам.

Get-Date использует текущие параметры языка и региональных параметров операционной системы для определения форматирования выходных данных. Чтобы просмотреть параметры компьютера, используйте (Get-Culture).DateTimeFormat .

Примеры

Пример 1. Получение текущей даты и времени

В этом примере Get-Date отображается текущая системная дата и время. Выходные данные относятся к формату long-date и long-time.

Get-Date Tuesday, June 25, 2019 14:53:32

Пример 2. Получение элементов текущей даты и времени

В этом примере показано, как использовать Get-Date для получения элемента даты или времени. Параметр использует аргументы Date, Time или DateTime.

Get-Date -DisplayHint Date Tuesday, June 25, 2019

Get-Date использует параметр DisplayHint с аргументом Date, чтобы получить только дату.

Пример 3. Получение даты и времени с помощью описателя формата .NET

В этом примере описатель формата .NET используется для настройки формата выходных данных. Выходные данные — это объект String .

Get-Date -Format "dddd MM/dd/yyyy HH:mm K" Tuesday 06/25/2019 16:17 -07:00

Get-Date использует параметр Format для указания нескольких описателей формата.

Описатели формата .NET, используемые в этом примере, определяются следующим образом:

класса хранения Определение
dddd День недели — полное имя
MM Номер месяца.
dd День месяца — 2 цифры
yyyy Год в формате 4 цифр
HH:mm Время в 24-часовом формате — нет секунд
K Смещение часового пояса из универсальной координаты времени (UTC)

Дополнительные сведения об описателях формата .NET см. в строках настраиваемого формата даты и времени.

Пример 4. Получение даты и времени с помощью описателя UFormat

В этом примере для настройки формата выходных данных используются несколько описателей формата UFormat . Выходные данные — это объект String .

Get-Date -UFormat "%A %m/%d/%Y %R %Z" Tuesday 06/25/2019 16:19 -07

Get-Date использует параметр UFormat для указания нескольких описателей формата.

Описатели формата UFormat , используемые в этом примере, определяются следующим образом:

класса хранения Определение
%A День недели — полное имя
%m Номер месяца.
%d День месяца — 2 цифры
%Y Год в формате 4 цифр
%R Время в 24-часовом формате — нет секунд
%Z Смещение часового пояса из универсальной координаты времени (UTC)

Список допустимых описателей формата UFormat см. в разделе «Заметки «.

Пример 5. Получение дня даты года

В этом примере свойство используется для получения числовых дней года.

Григорианский календарь имеет 365 дней, за исключением високосных лет, которые имеют 366 дней. Например, 31 декабря 2020 г. — день 366.

(Get-Date -Year 2020 -Month 12 -Day 31).DayOfYear 366

Get-Date использует три параметра, чтобы указать дату: год, месяц и день. Команда упаковывается в скобки, чтобы результат вычислялся свойством DayofYear .

Пример 6. Проверьте, корректируется ли дата для летнего времени

В этом примере используется логический метод для проверки того, корректируется ли дата по летнему времени.

$DST = Get-Date $DST.IsDaylightSavingTime() True

Переменная $DST сохраняет результат Get-Date . $DST использует метод IsDaylightSavingTime для проверки того, корректируется ли дата для летнего времени.

Пример 7. Преобразование текущего времени в utc

В этом примере текущее время преобразуется в время UTC. Смещение в формате UTC для языкового стандарта системы используется для преобразования времени. Таблица в разделе «Заметки » содержит допустимые описатели формата UFormat .

Get-Date -UFormat "%A %B/%d/%Y %T %Z" $Time = Get-Date $Time.ToUniversalTime() Wednesday June/26/2019 10:45:26 -07 Wednesday, June 26, 2019 17:45:26

Get-Date использует параметр UFormat с описателями формата для отображения текущей системной даты и времени. Описатель формата %Z представляет смещение в формате UTC от -07.

Переменная $Time сохраняет текущую системную дату и время. $Time ToUniversalTime() использует метод для преобразования времени на основе смещения utc компьютера.

Пример 8. Создание метки времени

В этом примере описатель формата создает объект timestamp String для имени каталога. Метка времени включает смещение даты, времени и времени в формате UTC.

$timestamp = Get-Date -Format o | ForEach-Object < $_ -replace ":", "." >New-Item -Path C:\Test\$timestamp -Type Directory Directory: C:\Test Mode LastWriteTime Length Name ---- ------------- ------ ---- d----- 6/27/2019 07:59 2019-06-27T07.59.24.4603750-07.00

Переменная $timestamp сохраняет результаты Get-Date команды. Get-Date использует параметр Format с описательом формата нижнего регистра o для создания объекта timestamp String. Объект отправляется вниз конвейера ForEach-Object . ScriptBlock содержит $_ переменную, представляющую текущий объект конвейера. Строка метки времени разделена двоеточиями, которые заменяются периодами.

New-Item использует параметр Path, чтобы указать расположение для нового каталога. Путь включает $timestamp переменную в качестве имени каталога. Параметр Type указывает, что создается каталог.

Пример 9. Преобразование метки времени Unix

В этом примере время в формате Unix (представленное количеством секунд с 0:00:00 01.01.1970) преобразуется в тип DateTime.

Get-Date -UnixTimeSeconds 1577836800 Wednesday, January 01, 2020 12:00:00 AM

Пример 10. Возврат значения даты, интерпретированного как UTC

В этом примере показано, как интерпретировать значение даты как эквивалент UTC. Например, для этого компьютера задано значение Pacific Standard Time. По умолчанию Get-Date возвращает значения для этого часового пояса. Используйте параметр AsUTC для преобразования значения в эквивалентное время в формате UTC.

PS> Get-TimeZone Id : Pacific Standard Time DisplayName : (UTC-08:00) Pacific Time (US & Canada) StandardName : Pacific Standard Time DaylightName : Pacific Daylight Time BaseUtcOffset : -08:00:00 SupportsDaylightSavingTime : True PS> (Get-Date -Date "2020-01-01T00:00:00").Kind Unspecified PS> Get-Date -Date "2020-01-01T00:00:00" Wednesday, January 1, 2020 12:00:00 AM PS> (Get-Date -Date "2020-01-01T00:00:00" -AsUTC).Kind Utc PS> Get-Date -Date "2020-01-01T00:00:00" -AsUTC Wednesday, January 1, 2020 8:00:00 AM

Пример 11. Отображение инвариантного языка и региональных параметров

Объект ToString() DateTimeпреобразует строку с помощью текущего параметра языка и региональных параметров. Однако интерпретация выражений PowerShell всегда использует инвариантный параметр языка и региональных параметров.

Например, в системе с en-US языком и региональными ToString() параметрами метод форматирует дату с помощью en-US параметров языка и региональных параметров.

# Get date using current culture en-US (Get-Date 2024-03-19).ToString() 3/19/2024 12:00:00 AM # Get date using invariant culture "$(Get-Date 2024-03-19)" 03/19/2024 00:00:00

Параметры

-AsUTC

Преобразует значение даты в эквивалентное время в формате UTC.

Этот параметр появился в PowerShell 7.1.

Type: SwitchParameter
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-Date

Указывает дату и время. Время является необязательным, а если не указано, возвращает значение 00:00:00. Введите дату и время в формате, стандартном для выбранного языкового стандарта. Текущий языковой стандарт можно изменить с помощью командлета Set-Culture .

Например, на английском языке США:

Get-Date -Date «6/25/2019 12:30:22» возвращается во вторник, 25 июня 2019 12:30:22

Type: DateTime
Aliases: LastWriteTime
Position: 0
Default value: None
Required: False
Accept pipeline input: True
Accept wildcard characters: False

-Day

Указывает выводимый день месяца. Введите значение от 1 до 31.

Если указанное значение больше числа дней в месяц, PowerShell добавляет количество дней в месяц. Например, Get-Date -Month 4 -Day 31 отображается 1 мая, а не 31 апреля.

Type: Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-DisplayHint

Определяет, какие элементы даты и времени будут отображаться.

  • Date: отображается только дата;
  • Time: отображается только время;
  • DateTime: отображаются дата и время.
Type: DisplayHintType
Accepted values: Date, Time, DateTime
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-Format

Выводит дату и время в формате Microsoft .NET Framework, определяемом спецификатором формата. Параметр Format выводит объект String .

Список доступных описателей формата .NET см. в строках настраиваемого формата даты и времени.

Если используется параметр Format, получает только свойства объекта DateTime, Get-Date необходимые для отображения даты. Поэтому некоторые свойства и методы объекта DateTime могут быть недоступны.

Начиная с PowerShell 5.0, можно использовать следующие дополнительные форматы в качестве значений для параметра Format .

  • FileDate. Представление текущей даты или пути в локальном времени. Формат имеет значение yyyyMMdd (учитывает регистр, используя 4-значный год, 2-значный месяц и 2-значный день). Например, 20190627.
  • FileDateUniversal. Понятное для файла представление текущей даты в формате UTC. Формат — yyyyMMddZ (учитывает регистр, используя 4-значный год, 2-значный месяц, 2-значный день и букву Z в виде индикатора UTC). Например: 20190627Z.
  • FileDateTime. Представление текущей даты и времени в 24-часовом формате. Формат — yyyyMMddTHHmmssffff (учитывает регистр, используя 4-значный год, 2-значный месяц, 2-значный день, букву T в виде разделителя времени, 2-значный час, 2-разрядную минуту, 2-разрядную секунду и 4-разрядную миллисекунд). Например: 20190627T0840107271.
  • FileDateTimeUniversal. Понятное для файла представление текущей даты и времени в формате UTC в формате 24 часа. Формат имеет yyyyMMddTHHmmssffffZ значение (учитывает регистр, используя 4-значный год, 2-значный месяц, 2-значный день, букву T в качестве разделителя времени, 2-значный час, 2-разрядную минуту, 2-разрядную секунду, 4-разрядную миллисекунду и букву Z в качестве индикатора UTC). Например: 20190627T1540500718Z.
Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-Hour

Указывает выводимый час. Введите значение от 0 до 23.

Type: Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-Millisecond

Указывает миллисекунды в дате. Введите значение от 0 до 999.

Этот параметр появился в PowerShell 3.0.

Type: Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-Minute

Указывает выводимую минуту. Введите значение от 0 до 59.

Type: Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-Month

Указывает выводимый месяц. Введите значение от 1 до 12.

Type: Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-Second

Указывает выводимую секунду. Введите значение от 0 до 59.

Type: Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-UFormat

Выводит дату и время в формате UNIX. Параметр UFormat выводит строковый объект.

Описатели UFormat предшествуют знаку процента ( % например, %m , %d и %Y . Раздел «Заметки » содержит таблицу допустимых описателей UFormat.

При использовании параметра UFormat получает только свойства объекта DateTime, Get-Date необходимые для отображения даты. Поэтому некоторые свойства и методы объекта DateTime могут быть недоступны.

Type: String
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

-UnixTimeSeconds

Дата и время, представленные в секундах с 1 января 1970 г., 0:00:00.

Этот параметр появился в PowerShell 7.1.

Type: Int64
Aliases: UnixTime
Position: Named
Default value: None
Required: True
Accept pipeline input: False
Accept wildcard characters: False

-Year

Указывает выводимый год. Введите значение от 1 до 9999.

Type: Int32
Position: Named
Default value: None
Required: False
Accept pipeline input: False
Accept wildcard characters: False

Входные данные

Объект DateTime можно передать в этот командлет.

Выходные данные

По умолчанию этот командлет возвращает объект DateTime .

Когда объект DateTime отправляется по конвейеру в командлет, например Add-Content , ожидающий ввода строк, PowerShell преобразует объект в объект String.

Объект ToString() DateTime преобразуется в строку с помощью текущего параметра языка и региональных параметров. Однако интерпретация выражений PowerShell всегда использует инвариантный параметр языка и региональных параметров. Сведения о том, как инвариантные региональные параметры отличаются, см . в примере 11.

Чтобы отобразить свойства и методы объекта, отправьте объект вниз по конвейеру Get-Member . Например, Get-Date | Get-Member .

При использовании параметров Format или UFormat этот командлет возвращает объекты String .

Примечания

Форматы по умолчанию для выходных данных объектов DateTime — это форматы длительной даты и длительного времени для выбранного языкового стандарта.

Допустимые описатели UFormat отображаются в следующей таблице:

Описатели UFormat изменяются или добавляются в более новых версиях PowerShell. Например, %F был добавлен в PowerShell 6.2, поэтому он недоступен в Windows PowerShell 5.1 или более ранней версии. Помните об этом при использовании описателей UFormat в сценариях, предназначенных для запуска в нескольких версиях PowerShell.

Спецификатор формата Значение Пример
%A День недели — полное имя Понедельник
%a День недели — сокращенное имя Пн
%B Имя месяца — полное января
%b Имя месяца — сокращено Янв
%C Века 20 за 2019 год
%c Дата и время — сокращено Чт 27 08:44:18 2019
%D Дата в формате мм/дд/гг 06/27/19
%d День месяца — 2 цифры 05
%e День месяца — перед пробелом, если только одна цифра 5
%F Дата в формате гггг-мм-дд, равный %Y-%m-d (формат даты ISO 8601) 2019-06-27
%G Дата недели ISO (год, содержащий четверг недели)
%g То же, что и «G» — 2 цифры
%H Час в 24-часовом формате 17
%h То же самое, что «b»
%I Час в формате 12 часов 05
%j День года 1-366
%k То же самое, что «H»
%l То же самое, что «I» (верхний регистр i) 05
%M Минуты 35
%m Номер месяца. 06
%n символ новой строки
%p До или после полудня
%R Время в формате 24 часа -нет секунд 17:45
%r Время в формате 12 часов 09:15:36
%S сек. 05
%s Секунды истекли с 1 января 1970 г. 00:00:00 (UTC) 1150451174
%t Символ горизонтальной вкладки
%T Время в 24-часовом формате 17:45:52
%U То же самое, что «W»
%u Числовой день недели (1-7) (изменено в PowerShell 7.2) Понедельник = 1, воскресенье = 7
%V Неделя года 01-53
%w Числовой день недели (0-6) Воскресенье = 0, суббота = 6
%W Неделя года 00-52
%X То же самое, что «T»
%x Дата в стандартном формате для языкового стандарта 06.27.19 для английского языка США
%Y Год в формате 4 цифр 2019
%y Год в формате с 2 цифрами 19
%Z Смещение часового пояса из универсальной координаты времени (UTC) -07

Поведение -UFormat %s было изменено для устранения проблем с поведением в Windows PowerShell.

  • Возвращаемое значение основано на времени UTC.
  • Это значение является целым числом секунд (без дробной части).

Связанные ссылки

  • ForEach-Object
  • Get-Culture
  • Get-Member
  • New-Item
  • New-TimeSpan
  • Set-Date
  • Настройка языка и региональных параметров

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

Power Query Язык М №7. Дата, время, длительность и прочее(date, datetime, time, datetimezone)

Дата может быть только после Рождества Христова. Дата до РХ вернет ошибку.

// Дата может быть только после Рождества Христова
Создать значение с типом данных #time

Создать значение #time.

// Создать время #time(23, 58, 0)

Секунды дробятся с точностью 100 наносекунд, т. е. до 7 знаков после запятой (точки).

// Секунды дробятся с точностью 100 наносекунд #time(23, 58, 0.5)
Полночь

Следующий код выводит на экран значение 0:00:00.

// Полночь #time(0, 0, 0)

Следующий код тоже выводит на экран значение 0:00:00.

// Второй способ задать полночь #time(24, 0, 0)

Если мы сравним эти значения, то в результате получим FALSE, т. е. PQ не считает эти значения равными.

// Два вида полночи не равны #time(24, 0, 0) = #time(0, 0, 0)

Преобразуем оба этих значения в число. Первая формула вернет 0, а вторая 1.

// Преобразуем каждый вид полночи в число #table(, < >)
#datetime

Создадим значение с типом данных datetime.

// Создать дату и время #datetime(1984, 8, 6, 23, 58, 0)

Если объединить символом & значения #date и #time, то в результате получится значение #datetime. Порядок слагаемых не имеет значения.

// Оператором & можно из date и time создать datetime #table(, < <#date(1984, 8, 6) & #time(23, 58, 0), #time(23, 58, 0) & #date(1984, 8, 6)>>)
#datetimezone

Значение datetimezone — это datetime и еще количество часов и минут относительно UTC. Если последние 2 числа — это 3 и 0, то это значит +3 часа 0 минут ко времени UTC.

// datetimezone - это datetime с указанием разницы со временем UTC #datetimezone(1984, 8, 6, 23, 58, 0, -6, -30)
#duration (длительность)

Создаем значение с типом данных длительность.

// Создать длительность #duration(3, 6, 15, 30.5)

Длительность может быть отрицательной.

// Длительность может быть отрицательной #table(, < <#duration(-3, -6, -15, -30.5), -#duration(3, 6, 15, 30.5)>>)

Одну и ту же длительность можно получить разными способами.

// Разные способы указать одну и ту же длительность #table(, < <#duration(2, 0, 0, 0), #duration(0, 48, 0, 0), #duration(0, 0, 48*60, 0)>>)

Параметры #duration могут быть с разным знаком. Результатом будет сложение всех параметров.

// Параметры могут быть с разными знаками #duration(3, -12, 0, 0)
Преобразование типов данных

Преобразовать #date в #datetime. Время получится 00:00:00.

// Преобразовать дату в datetime DateTime.From(#date(1917, 11, 7))

Превратим #datetime просто в #date или просто #time.

// Извлечь date или time из datetime #table(, < >)

Превратить #date или #datetime в #datetimezone

При преобразовании #date или #datetime в #datetimezone в результате получим #datetimezone, в котором 2 последних параметра будут браться из настроек системы.

// Преобразовать в datetimezone. Зона определяется настройками системы #table(, < >)

Превратим #datetimezone в #datetime. При преобразовании берется временная зона из настроек системы.

// При преобразовании берется системное время DateTime.From(#datetimezone(1917, 11, 7, 12, 30, 0, 0, 0))
Сложение и вычитание

#duration можно прибавлять к/вычитать из #date, #time, #datetime, #datetimezone, #duration.

// Прибавляем и вычитаем #duration #table(, < <#date(2021, 9, 1) + #duration(1, 12, 0, 0), #time(23,58,00) + #duration(0, 0, 2, 0), #datetime(2021, 9, 1, 23, 58, 0) + #duration(1, 1, 2, 0), #datetimezone(2021, 9, 1, 23, 58, 0, 3, 0) + #duration(1, 0, 0, 0), #duration(1, 12, 0, 0) + #duration(0, 12, 0, 0)>, <#date(2021, 9, 1) - #duration(1, 12, 0, 0), #time(23,58,00) - #duration(0, 0, 2, 0), #datetime(2021, 9, 1, 23, 58, 0) - #duration(1, 1, 2, 0), #datetimezone(2021, 9, 1, 23, 58, 0, 3, 0) - #duration(1, 0, 0, 0), #duration(1, 12, 0, 0) - #duration(0, 12, 0, 0)>>)

#date можно вычитать из #date, #time из #time, #datetime из #datetime, #datetimezone из #datetimezone.

// Вычитать можно date из date, time из time и т. д. // Результатом будет duration #table(, < <#date(2021, 9, 1) - #date(2021, 8, 1), #time(23,58,00) - #time(0, 2, 30), #datetime(2021, 9, 1, 23, 58, 0) - #datetime(2021, 8, 1, 0, 2, 30), #datetimezone(2021, 9, 1, 23, 58, 0, 3, 0) - #datetimezone(2021, 8, 1, 0, 2, 30, 3, 0)>>)
Умножение и деление

Значение #duration можно умножать и делить на число.

// duration можно умножать и делить #table(, < <#duration(1, 0, 0, 0) * 3, #duration(1, 0, 0, 0) / 3>>)
Преобразовать в текст с помощью Text.From

Функция Text.From преобразовывает #date, #time, #datetime, #datetimezone, #duration в текст.

// Преобразовать в текст #table(, < >)
Преобразование в текст с указанием формата с помощью x.ToText

Функции x.ToText преобразовывают #date, #time, #datetime, #datetimezone, #duration с возможностью указать формат и язык. Формула Date.ToText(#date(2021, 9, 1), «d MMMM yy», «en-US») превратит дату 01.09.2021 в 1 September 21.

// Преобразовать в текст с указанием формата #table(, < >)
OLE Date

OLE Date — это количество дней, которое прошло от начальной даты. Формула Date.From(0) вернет начальную дату в Power Query. Формула Date.From(20) вернет дату, которая отстоит на 20 дней от начальной даты.

// Получить date, time, datetime, duration из OLE

Преобразовать #date, #time, #datetime, #datetimezone, #duration в OLE Date.

// Получить OLE из date, datetime и т. д.
Курс по Языку М
Номер урока Урок Описание
1 Power Query Язык М №1. Простые выражения, let Что такое let, одна или несколько переменных в in, вложенные блоки let.
2 Power Query Язык М №2. Создание функций М Функции без выражения let, функции внутри выражения let.
3 Power Query Язык М №3. Создание функций М 2 Функция как параметр функции, ключевое слово each.
4 Power Query Язык М №4. Переменные и идентификаторы Идентификаторы с кавычками и без, допустимые и недопустимые идентификаторы.
5 Power Query Язык М №5. Текстовый тип данных Особенности работы с текстовым типом данных.
6 Power Query Язык М №6. Числовой тип данных (Ввод, Сравнение, Точность, Бесконечность) В этом уроке мы узнаем, что из себя представляет числовой тип данных.
7 Power Query Язык М №7. Дата, время, длительность и прочее(date, datetime, time, datetimezone) Как создать значение с типом данных #date, #time, #datetime, #datetimezone, #duration. Преобразование значений одного типа данных в другой, арифметические операции, тонкости.
8 Power Query Язык М №8. Типы данных Logical, Null Изучим логический тип данных и значение null.
9 Power Query Язык М №9. Объект Record / Запись Что такое объект Record / Запись. Как создать запись, как сослаться на значения записи, как сравнивать записи, как объединять записи, как изменять записи.
10 Power Query Язык М №10. Объект List / Список Зачем нужны списки, создание списков, сравнение списков, функции для работы со списками.
11 Power Query Язык М №11. Объект Table / Таблица Получить строку, столбец. Объединение таблиц по вертикали.
12 Power Query Язык М №12. Как PQ работает с таблицами В этом уроке вы узнаете как думает Power Query.
13 Power Query Язык М №13. Ключевое слово each Зачем нужно ключевое слово each.

Power Query Язык М №7. Дата, время, длительность и прочее(date, datetime, time, datetimezone) was last modified: 2 июня, 2022 by Admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *