今天去参加了一个学校的图书馆笔试,
考的全是数据库SQL语句和网络方面的基础题,但是发现,没有几题会做的相当郁闷。今天第一次知道写SQL语句,可以不用from table的。。
例如: 查询当前时间加上两个小时;
查询从2005-5-1到现在的月数和天数
从来没这么写过SQL语句,我只会写select * from table...
SQL的一些基本函数都没用过,当然是灰溜溜的回来了。。我只知道创建索引是 CREATE INDEX index_name ON table_name (column_name) 这么来写,
但是在SQL PLUS里面始终执行不成功。。
纠结,下次一定要好好准备才行!
考的全是数据库SQL语句和网络方面的基础题,但是发现,没有几题会做的相当郁闷。今天第一次知道写SQL语句,可以不用from table的。。
例如: 查询当前时间加上两个小时;
查询从2005-5-1到现在的月数和天数
从来没这么写过SQL语句,我只会写select * from table...
SQL的一些基本函数都没用过,当然是灰溜溜的回来了。。我只知道创建索引是 CREATE INDEX index_name ON table_name (column_name) 这么来写,
但是在SQL PLUS里面始终执行不成功。。
纠结,下次一定要好好准备才行!
那题目就是:查询当前时间,根本就没有什么表啊?为什么要写from table呢?
今天在网上查了一下,有个getdate()函数,不过是在SQL SERVER下面执行的,ORACLE就不晓得了。。
还望指教
months_between(sysdate,to_date('20050501','yyyymmdd'))
from dual;
从来没用过oracle
马上去搜一下,dual表是什么东东。。呵呵。。还是应该多了解些才行。。
字段,表名均没有问题,但是执行始终不成功,我不知道SQL PLUS里面是不是语法不一样?还是有什么特别的要求?
附:执行的错误显示,我已经不记得了。。唉。。那天考的太昏了。。
这字段看着没问题呀。
select convert(datetime ,'20100418',120); --MSSQL
select to_date('18-APR-2010','dd-mm-yyyy') from dual; --Oracle SQL
V_sql varchar2(3000);
begin
N_sql:='CREATE INDEX index_name ON table_name (column_name)';
execute immediate V_sql;
end;
多看看别人的sql,没用过的语句google或是baidu下
会了解到很多自己不知道的东西
select floor(sysdate - to_date('20050501','yyyymmdd')) ,
months_between(sysdate,to_date('2005-05-01','yyyy-mm-dd'))
from dual;