小编Nav*_*jum的帖子

在Oracle/PLSQL中增加Datetime时出错

在这里,我使用从StartDateTime到EndDatetime的循环,并在每次迭代中添加1小时.一切都在Loop.But问题是在插入查询.请检查插入查询.

declare
StartDateTime   TIMESTAMP :=to_date( '2017-01-01 00:00:00','yyyy-mm-dd       
hh24:mi:ss');
EndDateTime   TIMESTAMP :=to_date( '2017-12-31 00:00:00','yyyy-mm-dd 
hh24:mi:ss');
dateti TIMESTAMP;
dateti2 TIMESTAMP;
StartDateTime1 TIMESTAMP;
sub INTEGER;
semester Number;
begin

sub:=( CAST( EndDateTime AS DATE ) - CAST( StartDateTime AS DATE ) )  ;

FOR i IN  0 .. 1
LOOP
StartDateTime1:=StartDateTime+i;
for idx in 0..2 loop
dateti:=to_date(StartDateTime1+(idx/24.0),'yyyy-mm-dd hh24:mi:ss');
dateti2:=to_date(StartDateTime1+((idx+1)/24.0)+ interval '-1' second,'yyyy-
mm-dd hh24:mi:ss');

      case 
        when to_number(to_char(dateti ,'Q'))>6 then semester:=to_number(2);
       else semester:=to_number(1);
        end case;
Run Code Online (Sandbox Code Playgroud)

问题从插入查询开始.它说非数字字符找到.DateSlotStart和DateSlotEnd数据类型是Timestramp.请看图像并告知我应该更改什么?

在此输入图像描述

  insert into DimDate1(DateSlotStart,DateSlotEnd,
  "Date",SlotName,MonthName,MonthNumberOfYear,Quarter,Year,Semester) values 
   (to_date(dateti ,'yyyy-mm-dd hh24:mi:ss') ,to_date(dateti2 …
Run Code Online (Sandbox Code Playgroud)

oracle plsql oracle11g oracle12c

2
推荐指数
1
解决办法
91
查看次数

标签 统计

oracle ×1

oracle11g ×1

oracle12c ×1

plsql ×1