Проблемы с созданием DATETIME для даты (DATE) и времени (INT) как исправить? - PullRequest
0 голосов
/ 30 апреля 2019

Работа с ODBC Progress и ввод данных в Excel. В настоящее время в таблице событий у меня есть объект для даты создания и другой для времени создания. Я смотрю на объединение этих двух вместе, чтобы создать время даты.

Я уже пробовал несколько разных вещей и просматривал стек для ваших стандартных разрешений, но по какой-то причине я не могу заставить их работать так, как я планировал, если вообще делал.

Данные в настоящее время изложены так

EventID      EVECreateddate         EVECreatedTime
  123          29/04/2019              59302

Как видно из данных, созданное время при экспорте не показывает время, которое должно быть. В БД EVECreatedTime - это INTERGER, а EVECreateddate - это DATE.

Чтобы EVECreatedtime показывалось как фактическое время, я должен выполнить следующее:

Cast(Event_0.EveCreatedTime AS DECIMAL)/86400 AS'EveCreatedTime'

Затем форматируется на внешнем интерфейсе как [h]:MM:SS, чтобы отобразить его как фактическое время.

Теперь у меня есть время в формате, я пытаюсь выполнить следующее:

Event_0.EveCreatedDate + CAST(Event_0.EveCreatedTime AS Decimal)/86400 as testing

Данные теперь возвращаются в общем формате, например:

EventID        TESTING
  123           43585

Когда вы преобразуете форматирование в DD:MM:YY [h]:mm:ss, оно будет выглядеть так:

29/04/2019 12:00:00

Таким образом, он показывает правильную дату, но не правильное время.

Я также пробовал:

Event_0.EveCreatedDate + Event_0.EveCreatedTime 

, который возвращает раздутую дату, такую ​​как: 16/07/2122 00:00:00 при форматировании DD:MM:YY hh:mm:ss

Затем я пытаюсь завершить:

Event_0.EveCreatedDate + ' ' + Event_0.EveCreatedTime 

Это ошибка с Несогласованными типами (7481), которая заставляет меня думать, что это невозможно сделать в Progress.

Любая помощь по этому поводу, даже если будет сказано, что это невозможно сделать из-за ограничений, будет полезна. Все, что я хотел бы, если возможно, это возвращать дату и время для каждого события, похожего на это:

  Event ID                  EventDatetime
     123                  29/04/2019 16:28:22

1 Ответ

0 голосов
/ 27 июня 2019

Используйте функцию timestampadd :

timestampadd( sql_tsi_second, EveCreatedTime, EveCreatedDate ) "timestamp"

В этом случае отметка времени в Excel отображается как ГГГГ-ММ-ДД ЧЧ: ММ - этот пользовательский формат можно изменить, включив в него секунды.

(протестировано с Progress OpenEdge 11.7.4)

...