我没有任何PL / SQL经验,但我认为我需要它。
我有以下问题:
我有一张表格,其中包含:
Object Station Time
744 2 23:40:00
744 3 23:45:00
744 4 23:48:00
744 8 23:59:00
744 9 00:02:00
744 13 00:15:00
现在我需要一个带日期的新字段:
Object Station Time Date
744 2 23:40:00 26.03.2013
744 3 23:45:00 26.03.2013
744 4 23:48:00 26.03.2013
744 8 23:59:00 26.03.2013
744 9 00:02:00 27.03.2013
744 13 00:15:00 27.03.2013
如果时间已达到00:00:00
,您可以看到日期已更改在SQL中我不知道如何做到这一点 - 所以现在我认为我需要一个PL / SQL脚本来创建日期。
答案 0 :(得分:0)
既然既没有说明创建表的数据类型,也没有说明表可以包含哪些可能的值,也没有说明为什么要生成所需的结果,那么就无法找到正确的解决方案。但你可能会从像
这样的东西开始create table tq84_t (
station number,
time varchar2(8)
);
insert into tq84_t values ( 2, '23:40:00');
insert into tq84_t values ( 3, '23:45:00');
insert into tq84_t values ( 4, '23:48:00');
insert into tq84_t values ( 8, '23:59:00');
insert into tq84_t values ( 9, '00:02:00');
insert into tq84_t values (13, '00:15:00');
select
station,
time,
to_char(trunc(sysdate) -1 +
sum(next_day) over (order by station), 'dd.mm.yyyy') date_
from (
select
case when nvl(lag(time) over (order by station), chr(0)) < time
then 0
else 1 end next_day,
time,
station
from
tq84_t
)
order by
station;
答案 1 :(得分:-2)
INSERT INTO #your_table
SELECT 744 as OBJECT, 13 as Station , '00:15:00' as your time , CONVERT(varchar , GETDATE(), 103)
^^这仅在您插入当前日值时才有效;
或者您只需使用DATETIME Field
即可CREATE TABLE #yortable
(OBJECT INT, Station int , Arrival_date datetime )
例如你有公交车站,它应该到达'2013/03/28 23:30:00'并且不迟到。你只需为它增加价值
update #yortable
set Arrival_date = DATEADD(mi, 31, Arrival_date )
WHERE Station=1 and object=744
分钟
呃 - 小时
ss - 第二次
结果
'2013/03/29 00:01:00'