Преобразование строки отметки времени в отметку времени UNIX в MonetDB

Я хотел бы преобразовать метку времени, например «2018-02-14 23:59:59», в метку времени UNIX. Я обнаружил, что при использовании select sys.epoch(unix_timestamp); возможно обратное. Функции str_to_date, str_to_time или str_to_timestamp бесполезны, даже если я укажу строку формата "% s", как показано здесь.

Другими словами, я ищу в MonetDB эквивалент функции MySQL UNIX_TIMESTAMP().


person Marcell Bernát    schedule 14.02.2018    source источник


Ответы (1)


Нашел решение:

select sys.epoch(str_to_timestamp('2018-02-15 10:04:00', '%Y-%m-%d %H:%M:%S'));

1518689040

Очевидно, если вам нужно это в миллисекундах, просто умножьте на 1000 вот так:

select sys.epoch(str_to_timestamp('2018-02-15 10:04:00', '%Y-%m-%d %H:%M:%S')) * 1000;

Как я это нашел, на случай, если у кого-то в будущем возникнет аналогичная проблема:

Вы можете просмотреть все системные функции, используя:

select * from sys.functions;

Более красивое решение можно найти здесь: Есть ли способ просмотреть Сигнатуры функций MonetDB

Оказывается, функция эпохи может принимать метку времени в качестве параметра.

person Marcell Bernát    schedule 15.02.2018