读书之法
,
在循序而渐?/p>
,
熟读而精?/p>
1.db2 sql
语句中计算两个日期相差的语法
?/p>
1
?/p>
timestampdiff(8,char(
结束时间
-
开始时?/p>
) )
(加时分秒计算,会舍去零数)?/p>
?/p>
744
小时
?/p>
2
?/p>
(days(
结束时间
)-days(
开始时?/p>
))*24
+hour(
结束时间
)-hour(
开始时?/p>
)
(不?/p>
时分秒计算)值为
745
小时
?/p>
3
?/p>
Days
(结束日期)
-days
(开始日期)的值为
31
?/p>
?/p>
4
?/p>
Day(
结束日期
)-day
(开始日期)的值为
1
?/p>
?/p>
5
?/p>
Hour
(结束日期)
-hour
(开始日期)的值为
1
小时
?/p>
6
)假如开始日期为
2012-09-09 10:00:00
Month
(结束日期)
-month
(开始日期)的值为
1
个月
2.oracle sql
语句中计算两个日期相差的语法
结束日期为:
2013-5-27
11:20:47
开始日期为?/p>
2013-4-23
11:24:13
?/p>
1
?/p>
Trunc
(开始时间)
-trunc
(结束时间)
的值为
34
天(不加时分秒计算)
?/p>
2
?/p>
round(to_number
?/p>
cast(
结束日期
as date) - cast(
开始日?/p>
as date)))
的?/p>
?/p>
35
天(加上时分秒计?/p>
进行四舍五入?/p>
?/p>
3
?/p>
round(to_number
?/p>
cast(
结束日期
as
date) - cast(
开始日?/p>
as date))*24)
?/p>
值为
816
小时
(加上时分秒计算
进行四舍五入?/p>
?/p>
4
?/p>
round(to_number
?/p>
cast(
结束日期
as
date) - cast(
开始日?/p>
as date))*24*60)
的值为
48957
分钟
(加上时分秒计算
进行四舍五入?/p>
3.Sql
语句?/p>
db2
?/p>
oracle
类型转换语法
(以
int
?/p>
char
为例?/p>
?/p>
PINT
?/p>
int
类型?/p>
Db2
语法为:
CHAR(PINT)
Oracle
语法为:
CAST(PINT AS CHAR)
4.
查询?/p>
100
条数?/p>
Db2
的语法为?/p>
FETCH FIRST 100 ROWS
ONLY
Oracle
的语法为?/p>
where ROWNUM <= 100
(在整体查询出来之后再加这个判断?/p>
5.
修改字段类型的脚本:
Db2
的语法为?/p>
ALTER table TABLENAME alter column COLUMN1set data type
VARCHAR(100);
Oracle
的语法为?/p>
ALTER TABLE TABLENAME MODIFY PRIVILEGE VARCHAR(100);
6.Oracle
中把时间字符串转换为时间类型的语法为?/p>
to_date('2013-04-29 15:50:54','yyyy-mm-dd hh24:mi:ss')
to_date(to_char(2013-04-29 15:50:54,'YYYY-mm-dd'),'YYYY-mm-dd')
7.
把非空列改为可为空列
Db2
的语法为?/p>
ALTER TABLE TABLENAME ALTER COLUMN COLUMN1 DROP NOT NULL
Oracle
的语法为?/p>
Alter Table TABLENAME Modify COLUMN1 VarChar2(100) null