Postgresql将十六进制转换为时间戳(从SQL Server迁移时)

时间:2018-06-01 16:50:04

标签: database postgresql type-conversion sql-insert

解析SQL Server插入查询到PostgresSQL时遇到以下问题。在对查询进行必要的更改以使SQL语句起作用之后,我遇到了CAST()函数的一些麻烦。

CAST(x00009DD500000000 AS timestamp)
  1. 如果我写CAST(0x000....),pgAdmin说x附近有语法错误

  2. 如果删除0,我会收到列不存在的错误

  3. 我认为这可能是列数量的错误,但由于我正在处理大量数据而且我无法在postgresql中看到将十六进制转换为时间戳的函数,我想知道这是否会导致其他类型的错误。可能?

    是否有函数将十六进制值转换为Postgresql中的时间戳?

    因为将十六进制值转换为另一种类型的数据需要很长时间。

    提前致谢!

1 个答案:

答案 0 :(得分:1)

此时间戳记符号特定于MSSQL。它有两部分:

  • 日期部分 - 自1900-01-01以来的日期
  • 时间部分 - 精度为1/300秒

PostgreSQL中没有自动转换此值。 您可以在这里找到精确的解决方案: how to cast the hexadecimal to varchar(datetime)?