像这样尝试:
select cast(convert('1900-01-02 00:00:01.000000', datetime(6)) AS BINARY)
明白啦:
4957484845484945485032484858484858484946484848484848
这些只是 ASCII 字符代码,但 datetime(6) 是 8 个字节,我想要这 8 个字节的内容。convert 而不是 cast 没有帮助。对日期时间感兴趣 (6)。这种方法适用于 MS SQL Server,但由于某种原因,MySQL 的行为不同。
结果是用 HEX 编辑器打开 .idb 文件并在那里找到必要的 8 个字节。
表中有一个条目:
'2020-05-05 23:18:36.123457',根据官方文档,其前 5 个字节被编码为99A64B74A4. 其余三个字节在表文件的 HEX 表示中找到,结果是01E241,即 前 4 位是一个孔,实际上是前导零。根据文档,应该有 5 + 3 个字节
事实证明你需要这样做: