Postgresql приводит шестнадцатеричное значение к метке времени (при миграции с SQL Server) - PullRequest
0 голосов
/ 01 июня 2018

У меня следующая проблема при разборе запросов на вставку SQL Server в PostgresSQL.После внесения необходимых изменений в запросы, чтобы операторы SQL работали, у меня возникли некоторые проблемы с функцией CAST().

CAST(x00009DD500000000 AS timestamp)
  1. Если я напишу CAST(0x000....), pgAdmin говорит, что есть синтаксическая ошибка около x

  2. Если я удаляю 0, я получаю ошибку, что столбец не существует

Я думал, что это может быть ошибка с количеством столбцов, но так как я работаю с большим количеством данных, и я не смог увидеть функцию, которая преобразует шестнадцатеричное значение в метку времени в postgresql, я хотел знать,если это может вызвать какую-то другую ошибку.Может быть?

Есть ли в Postgresql функция для преобразования шестнадцатеричного значения в метку времени?

Поскольку преобразование шестнадцатеричного значения в другой тип данных займет много времени.

Заранее спасибо!

1 Ответ

0 голосов
/ 02 июня 2018

Это обозначение отметки времени относится к MSSQL.Он состоит из двух частей:

  • часть даты - дни с 1900-01-01
  • часть времени - с точностью 1/300

Нетавтоматическое приведение к этому значению в PostgreSQL.Точное решение вы можете найти здесь: как привести шестнадцатеричное значение к varchar (datetime)?

...