powerbi - 无法识别 3 字节二进制日期获取变量的 Power Query 转换
问题描述
日期显示为 3 字节十六进制值示例 = 72, 02, 11 将 72 转换为十进制 = 114 + 1900 = 2014, 02 = 02, 11 = 17 所以日期是 02/17/2014
Bdate 以三字节字段的形式出现,二进制定义为第 1 字节 = 年,第 2 字节 = 第 m,第 3 字节 = 日。
构建一个要调用的函数,因为数据库中的几个日期都是这种格式。将十六进制转换为十进制的辅助函数是库中的 fnhex2Dec。这是 FixDateBn 的代码
let
FixDateBn = (Bdate as binary) =>
let
FixDateBn = BinaryFormat.ByteOrder(
BinaryFormat.Record ([
Yr= BinaryFormat.Byte, //<- the Yr variable is getting Name Yr wasn't recognized.
Mth = BinaryFormat.Byte,
Day = BinaryFormat.Byte ]),
ByteOrder.LittleEndian),
Yrnum = fnhex2Dec(Yr,16)+1900,
Mthnum = fnhex2Dec(Mth,16),
Daynum = fnhex2Dec(Day,16),
Gooddate = #date(Yrnum,Mthnum,Daynum) as date
in
if Bdate is null then null else Gooddate
in
FixDateBn
感谢任何帮助。
这是从十六进制转换为常规日期的 sql。不知道如何在 Power Query M 语言中执行此操作。
CREATE FUNCTION "GetDateFromWDate" (:wDate CHAR(3)) RETURNS DATE AS
BEGIN
DECLARE :tmpdate DATE
SET :tmpdate = '1900-01-01';
IF (:wDate <> null) and (:wDate <> '') THEN
SET :tmpdate = DATEFROMPARTS (ascii(substring(:wDate, 1, 1)) + 1900, ascii(substring(:wDate, 2, 1)), ascii(substring(:wDate, 3, 1)));
END IF;
RETURN :tmpdate;
END
谢谢萨米
解决方案
推荐阅读
- reactjs - 使用reactjs处理付款时如何禁用条带付款按钮?
- linux - 为什么在命令行选项中设置 IGNORECASE awk 变量的值时不能正常工作?
- rest - 如何在@ManyToOne 单向映射中使用spring boot 保存包含子对象的父对象?
- android - 在 vscode 中运行颤振应用程序的问题
- tensorflow - ValueError:无法将 NumPy 数组转换为张量(不支持的对象类型浮点数)
- java - 检查数组是否是回文数组,仅使用索引作为参数
- git - 如何在 gitlab 中删除几个中间提交?
- php - 如何使用 Laravel 使用视图中的函数更新数据库中的列
- javascript - 如何在续集中处理一对多关联?
- linux - 如何使用 grep 搜索指向函数的指针?