【发布时间】:2020-11-08 23:22:29
【问题描述】:
我的架构中有一个视图列出了员工信息。
我想根据这两个字段计算 RETIRE_DATE:BIRTH_DATE 和 RETIRE_AGE。
使用RETIRE_DATE查询某个时期退休的员工。
运行查询给我一个错误
ORA-01741: 非法的零长度标识符
我认为这是因为我在查询中使用RETIRE_DATE 作为我的视图列。我该如何纠正这个问题?
这是我的代码:
$start_period = strtotime("-100 week");
$stop_period = strtotime("+100 week");
$query = StaffEmploymentListView::find()
->SELECT([
'PAYROLL_NO',
'BIRTH_DATE',
'RETIRE_AGE',
"ADD_MONTHS(BIRTH_DATE, RETIRE_AGE * 12) AS RETIRE_DATE"]);
$query->andFilterWhere(['>=',$this->RETIRE_DATE, $start_period])
->andFilterWhere(['<=', $this->RETIRE_DATE, $stop_period])
->all();
【问题讨论】:
-
您能否提供一个存储在该表中的数据示例?还有什么数据类型是 retire_age ?
-
跟查询无关,跟引号有关
-
@RobertoHernandez 我附上了一张我的桌子的照片。 retire_age 的类型为 NUMBER(2,0)
标签: php sql oracle yii2 yii2-active-records