Если тип данных TS
столбец - это только временная метка эпохи, миллисекунды от 1970-01-01 00:00:00.000
, ее нужно преобразовать во временный тип до того, как будет работать EXTRACT
. По this link:
The convert function is called epoch(int)
. There is also a new function epoch(timestamp) which returns the number of seconds since epoch.
Как я не могу проверить это, не имея экземпляр MonetDB, я исследовал немного больше, и это, кажется, уродливее, но более вероятно, работать, чтобы получить временную метку времени эпохи (на основании this post):
select TIMESTAMP '1970-01-01 00:00:00' + interval CAST(ts/1000 AS STRING) seconds from orders;
Так что, если это работает, полное решение будет что-то вроде
select EXTRACT(YEAR from (TIMESTAMP '1970-01-01 00:00:00' + interval CAST(ts/1000 AS STRING) seconds)) from orders;
Примечание: синтаксис, скорее всего, далеко, как у меня нет экземпляра MonetDB, чтобы проверить с
Edit: добавил CAST (... как STRING), согласно this link Я надеюсь, что это делает работу с арифметикой как ts/1000
без проблем ...
Какой тип столбца 'ts'? Это просто целое число? – ppeterka