我真的被困在这里。
例如past_data table。
name|date |hour |data
____________________________________________________________
je |06/05/2012|1 |32323
je |06/05/2012|2 |43564
je |20/05/2102|3 |12334
je |06/05/2012|4 |123123
je |13/05/2012|1 |133223
NEW_TABLE
name|date |hour |data
____________________________________________________________
je |06/05/2012|1 |32323
je |06/05/2012|2 |43564
je |20/05/2102|3 |12334
je |06/05/2012|4 |123123
如何编写程序以查找当前日(今天是星期日)的所有日期匹配,从“日期”表“past_date”副本到talbe“new_table”。在该示例中,您可以看到日期= 06/05/2012的行和past_date表中的20/05/2012被复制到new_table中,因为这两个日期是星期日。
然后循环这个过程13次(总共几周)每次增加1天,例如星期日,然后星期一,然后星期二等等。
请帮忙。
答案 0 :(得分:1)
你不需要PLSQL,
试试这个:
INSERT INTO new_table (name, date, hour, data)
SELECT name, date, hour, data
FROM past_data
WHERE to_char(sysdate, 'd') = to_char(date, 'd')
更新:我真的不明白为什么以及它有什么好处,但是既然你问过......
如果你使用PLSQL,你可以这样做:
BEGIN
FOR i IN 0 .. 12 LOOP
INSERT INTO new_table (name, date, hour, data)
SELECT name, date, hour, data
FROM past_data
WHERE to_char(sysdate + i, 'd') = to_char(date, 'd');
END LOOP;
END;
答案 1 :(得分:0)
获取一周中特定日期的格式说明符为“D”:
INSERT INTO new_table (name, date, hour, data)
SELECT name, date, hour, data
FROM past_data
WHERE to_char(date, 'D') = 1