Как я могу управлять строкой даты и времени Sybase в Perl?

Функциональный вызов для j в x[i, j, ...] при назначении x:

`:=`(col1_name = col1, col2_name = col2)

# or

c("col1_name", "col2_name") := list(col1, col2)

Второй способ существует для удобства пользователя (поэтому вам не нужно возиться с обратными галочками вокруг :=). Еще одно удобство предлагается, когда есть один столбец:

`:=`(col1_name = col1)

# or 

col1_name := list(col1)

# or 

col1_name := col1

Здесь последний вариант избавляет вас от необходимости заключать в list(...). Такая же удобная функция появляется, когда присутствует by=. В обоих случаях ожидается, что j будет вычислять список столбцов, поэтому пустой вектор также рассматривается как список столбцов длины один. Если вы хотите избежать расплаты с этим несоответствием, вы всегда можете написать list(...) или всегда использовать `:=`(...) в j.

В вашем примере это может означать изменение функции для возврата одного столбца вместо переноса в list(...). Для некоторых других идей и ссылок на виньетки, включенные в пакет, возможно см. Добавление столбцов списка к таблицам данных в R возвращает несовместимый вывод - функция или ошибка?

В качестве альтернативы, вы могли бы применить tag Править более эффективно с чем-то вроде «неравного соединения»:

mDT = data.table(
  yr_up  = c(2010, 2010, Inf, Inf), 
  sal_up = c(25000, Inf, 100000, Inf), 
  value  = c("okay", "cool", "okay", "cool")
)

dt[, cmt := mDT[.SD, on=.(yr_up > yr, sal_up > sal), mult="first"]$value]

5
задан brian d foy 10 February 2009 в 17:39
поделиться

3 ответа

Если Вы соглашаетесь с выполнением его в клиенте, Время:: модуль ParseDate должен смочь сделать работу для Вас.

4
ответ дан 14 December 2019 в 09:01
поделиться

Модули DateTime служили мне хорошо, когда я должен обработать вычисления даты/времени.

Используйте DBD:: Sybase syb_date_fmt() метод для управления форматом затем используйте DateTime:: Формат:: Strptime, чтобы проанализировать Ваши результаты и генерировать объекты DateTime. Используйте DateTime epoch метод, чтобы получить Ваше время эпохи или еще лучше сделать Вашу математику с помощью соответствующего DateTime:: объекты Продолжительности.

2
ответ дан 14 December 2019 в 09:01
поделиться

Если Вы не можете заставить Sybase и Perl сотрудничать, чтобы дать Вам, подлинный DateTime возражает или что-то подобное (как Время:: Часть), затем способ, которым я обычно обрабатываю такие вещи, состоит в том, чтобы попытаться убедить базу данных давать мне формат даты стандарта ISO (YYYY-MM-DDTHH:MI:SS) и преобразовывать оттуда.

1
ответ дан 14 December 2019 в 09:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: