‘壹’ oracle sql语句,查询出来的语句要把时间类型转换为整数型或者字符型, 请老师们看看下面问题详情
select
casewhento_date(字段,'yyyy-mm-dd')>sysdate
then'1'
else'2'
endAS字段别名
from表名;
‘贰’ oracle与SQL在使用方法上的区别
许多软件公司都理解了发展的重要性不依赖于特定的数据库类型(如Oracle,SQL服务器,DB2),它允许客户选择自己定制的平台的应用程序。一般情况下,软件开发人员能够识别他们的客户负责数据库维护,并且必须使用现有平台和个性化的客户。
在Oracle和SQL Server之间的差异,已经有很多从这个角度篇和企业数据库管理员开始描述两者之间的一般差异的角度。在这篇文章中,我会向你描述从应用的角度出发的SQL ERVER和Oracle平台之间的差异,并讨论几种可能的方法的发展不依赖于数据库环境下的应用。与此同时,我也不会就这两个平台,如分割和索引表之间的明显差异,应用讨论。 ?
定义通用接口和语言是极少数常见的语言和接口允许应用程序不依赖于数据库,想必也可以用同样的方法在应用于关系数据库上:?ANSI是由标准局,这是一个志愿者组织成员(由私人资金运行)所定义的美国国家,他们在广泛的相关设备和程序方面制定了国家认可的标准。在数据库领域,ANSI定义的标准编写SQL命令,假设命令可以在任何数据库中,而不需要改变命令语法运行。 ODBC是开放式数据库连接微软,它允许应用程序访问在使用SQL作为标准数据访问的数据库管理系统的数据(DBMS)中定义(ODBC)接口。 ODBC允许最大的连接性,这意味着一个单一的应用程序可以访问不同的数据库管理系统。然后,应用程序终端用户可以添加开放式数据库连接(ODBC)数据库驱动程序,以他们所选择的链路上的应用程序和数据库管理系统。 OLE DB是继任者的ODBC,例如,是基于一组允许连接到任何类似的SQL服务器,Oracle,DB2,MySQL和其他背景“前”软件组件的VB,C + +,Access等在许多情况下,OLE DB ODBC组件比原来提供更好的性能。 JDBC(Java数据库连接)应用程序编程接口是Java编程语言和广泛的SQL数据库和其他表格数据源(如电子表格或纯文本文件),它不依赖于行业标准的数据库连接上的数据库。 JDBD应用程序编程接口,基于SQL的数据库访问提供了调用级应用程序编程接口。在现实世界中常见的接口,遗憾的是,并非所有的数据库级别的命令都是ANSI,每个数据库都有自己的平台扩展。为ANSI或通用接口,在一般情况下,代表一小部分的功能,所以它可能意味着竞争力的性能损失。对于小型和小型数据库应用程序,以保持对数据库的通用访问是简单的,但是当数据库和/或应用程序变得越来越大,越来越复杂,你必须将功能添加到您的代码。比较函数使用
SQL Server和Oracle
---------数学函数
1。绝对值
S:选择ABS(-1)值
○:选择:选择ABS(-1)从双
2取整(大)
S值( - 1.001)上限值为
O:选择CEIL(-1.001)从双
价值3舍入(小)
S:选择地板(-1.001)值
○:选择地板(-1.001)从双值
4圆(拦截)
S:。选择投(-1.002如int)的值
○:从双
5圆润
s选择TRUNC(-1.002)值:。选择轮(1.23456,4)值1.23460
○:从双1.2346选择轮(1.23456,4)值
6。电子为电力
S的结束:请选择EXP(1)价值2.7182818284590451
○:选择地契(1)从双2.71828182
7取对数e为底
S值:选择日志(2.7182818284590451)值1 0:从双选LN(2.7182818284590451)值; 1
8取10。对于对数
S:选择LOG10(10)值为1
○:从双选择日志(10,10)值; 1
9平方
。 > S:选择SQUARE(4)价值16
○:选择双16
10取平方根
S:。选择SQRT(4)价值2
O:选择SQRT(4)从双2
价值11寻求结束任意数量
S的功率:功率选择(3,4)的值81 0:选择电源( 3,4),由双81
值12取一个随机数
S:。选择RAND()值
○:选择sys.dbms_random。从双值(0,1)的值;
13对勾
S:。选择符号(-8)值-1
○:从双-1
----------相关三角函数
>
14 PI
S:。 SELECT PI()值3.1415926535897931 0:我不知道
15.sin,余弦,正切参数以弧度
例如:选择罪(PI()/ 2 )的价值得到1(SQLServer的) 16.Asin,ACOS,阿坦,/> 17弧度角ATAN2返回弧度
<br互换(的SQLServer,Oracle不知道)
角度:弧度 - >角度弧度。角度 - >弧度
之间---------
数值比较
18集求最大
S:SELECT MAX(值)值从
(选择1值
选择-2价值
选择4值
选择3值)
>
O:从双
19集的最低要求
S:SELECT MIN(值)从
值(选择1值 BR />工会
选择-2价值
选择4值
选择3值)
○:至少选择从双
20如何处理空值?(F2而非空10)。
S:选择F1,ISNULL(F2,10)TBL ○:选择F1,NVL(F2,10)TBL
值------ 。 - 字符串函数
21求字符数
S:选择ASCII('A')值
○:选择ASCII('A')值从双
BR /> 22
S来自序号求字符:。选择CHAR(97)值
○:从/> 23连接<双
S:选择'11'+ '22'+ '33'值
○:选择CONCAT('11','22')| |从双
23 。子串的位置 - 返回3
S:选择CHARINDEX('S','sdsq',2)价值
○:选择INSTR('sdsq','S',2)值从双
>
23模糊字符串的位置 - 返回2%的回报率参数去掉中间7
/ / C + + Builder的研究本文转自 - 的条?ASP I = 996&D = dwn1rn“目标=”_blank“> http://www.ccrun.com/article.aspi=996&d=dwn1rn
S:选择PATINDEX('%d个%Q%','sdsfasdqe')值
○:甲骨文没有发现,但第四个参数的instr可以控制出现的次数
选择INSTR('sdsfasdqe','SD',1,2)从/> 24她的系列
S双回报6
<br值:。选择子('ABCD',2,2)的值
○:选择SUBSTR('ABCD',2,2)从/> 25子双
<br值,而不是返回aijklmnef
S:。 SELECT STUFF('ABCDEF',2,3,'ijklmn')值
○:选择替换从双
26子更换所有
S:。更换
○:选择翻译('fasdbfasegas','发','我')从双
价值27长度
S:。 LEN,DATALENGTH
○:长
28大小写转换下限,上限
29字第一个字母大写
S:......没找到 0:选择INITCAP('ABCD DSAF DF')从双
价值30填补左(空间第一个参数LPAD与空间功能)
S中的空间。选空间(10)+'ABCD'值
○:选择LPAD('ABCD',14)/> 31右键空间双
<br(空间的第一个参数RPAD与空间价值功能)
S:。选择'ABCD'+空格(10)值
○:选择RPAD('ABCD',14)/> 32删除空格的双
<br值
S:。 LTRIM,RTRIM
○:LTRIM,RTRIM,修剪
33重复字符串
S:。选择复制('ABCD',2)价值
○:没有发现
34的发音相似性比较(同为两个词的返回值,发音相同)
S:。 SELECT SOUNDEX('史密斯'),SOUNDEX('斯迈思')
○:从双
使用SELECT差异('史密瑟斯',SQLServer的SELECT SOUNDEX('史密斯'),SOUNDEX('斯迈思')' Smythers')比较差的同音
返回0-4,4为同音,最大
--------------日期函数
>
35系统时间
S:。选择GETDATE()值
O:选择双
直接前后与整数加减法
37日寻求几天
S:。选择转换(CHAR(10),GETDATE(),20)值
○:选择TRUNC(SYSDATE)从双
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD'),由双值值 BR p> 38求时间
S:。选择转换(CHAR(8),GETDATE(),108)值
○:SELECT TO_CHAR(SYSDATE,'HH24:MM:SS')从/> 39日期和时间双重
<br值采取
S的其余部分。 DATEPART和DATENAME函数(第一个参数决定)
○:TO_CHAR函数的第二个参数决定
参数--------------------- ------------下表需要补充
一年YY,日
季度的QQ,Q(季度)
一个月毫米,米(m O个无效)
DAYOFYEAR DY,Y(O表星期)
一天DD,D(D 2 O无效)
周周,WW(周无效)
平日DW(O不清楚)
小时的HH,HH12,HH24(HH12,HH24 s无效)
分钟英里,N(N无效)
第二个SS,S(S 0无效)
毫秒毫秒( 无效)
------------------------------------------- --- /> 40月
S的最后一天
41周(例如星期日)
S的一天双
<br值:。不知道
○:SELECT NEXT_DAY(SYSDATE,7)vaule FROM DUAL;
42字符串的周转时间
S:。可以直接转让或SELECT CAST('2004-09-08'作为日期时间)值
○:SELECT TO_DATE('2004-01-05 22:09:38','YYYY-MM-DD HH24-MI -SS')vaule FROM DUAL;
43求两个日期的一部分。可怜的(比如秒)
S:选择DATEDIFF(SS,GETDATE(),GETDATE()+12.3)值
○:直接减去两个日期(如D1-D2 = 12.3)
> SELECT(D1-D2)* 24 * 60 * 60 vaule FROM DUAL;基于差新颖性(例如,分钟)
S
44日。 SELECT DATEADD(英里,8,GETDATE())值
○:SELECT SYSDATE +8/60/24 vaule FROM DUAL;
45个时区寻道时间
S:。不知道
0:SELECT NEW_TIME(SYSDATE,'YDT“,”GMT“)vaule FROM DUAL;
-----时区参数,北京东8区应该是YDT -------
AST ADT大西洋标准时间
BST BDT白令海标准时间
CST CDT中部标准时间
美国东部时间EST东部标准时间
GMT格林威治时间
HST HDT阿拉斯加 - 夏威夷标准时间
MST MDT山区标准时间
NST纽芬兰标准时间
PST PDT太平洋标准时间
YST YDT YUKON标准时间
>
Oracle支持的字符和它们的功能相当于微软的SQL Server功能:
功能的Oracle的Microsoft SQL Server
把字符转换成ASCII码ASCII码ASCII码
字符串连接CONCAT(表达式+表达式)
转换成ASCII字符CHR CHAR
返回字符的字符串的开头(左起)INSTR CHARINDEX
字符转换为小写LOWER LOWER
转换字符转换为大写左边LPAD N / A <br上上
填充串/>明确的开始空白LTRIM LTRIM
删除字符串中的起始模式(模式)的空白RTRIM RTRIM
结束INSTR PATINDEX
重复的字符串RPAD REPLICATE
字符串表示SOUNDEX SOUNDEX
声音从一个字符串RPAD空间数字数据转换为字符数据TO_CHAR STR
子串SUBSTR SUBSTRING
REPLACE STUFF
在每个单词的第一个字母替换字符串大写INITCAP N / A
翻译字符串TRANSLATE N / A
字符串长度DATELENGTH或LEN
列表最大的字符串GREATEST N / A
列表最小字符串至少N / A
如果为NULL然后转换成字符串NVL ISNULL
日期函数功能甲骨文的Microsoft SQL Server
时间总和(日期列+ / - 值)或 ADD_MONTHS DATEADD
差异(日期列+ / - 值)或
MONTHS_BETWEEN DATEDIFF BR />当前日期和时间SYSDATE GETDATE()时当月
LAST_DAY N / A
区转换NEW_TIME N / A 日期NEXT_DAY N / A后第一个周日的最后一天
表示日期的字符串表示日期TO_CHAR DATENAME
整数TO_NUMBER
(TO_CHAR))DATEPART
日期舍入ROUND CONVERT
截断TRUNC将
转换字符串到日期TO_DATE CONVERT
如果为NULL则转换日期NVL ISNULL
转换功能
功能的Oracle的Microsoft SQL Server
以数字字符TO_CHAR CONVERT BR />字符转换为数字TO_NUMBER CONVERT
日期转换为字符TO_CHAR CONVERT
字符转换为日期TO_DATE CONVERT
十六进制转换为二进制HEX_TO_RAW CONVERT
2进制转换十六进制RAW_TO_HEX CONVERT
其他线路电平功能
功能的Oracle的Microsoft SQL Server
返回第一个非空表达式DECODE COALESCE
根据目前的顺序值CURRVAL N / A
一个序列值NEXTVAL N / A
如果EXP1 = EXP2,则返回null DECODE NULLIF
用户登录的帐户ID数字UID SUSER_ID
用户登录名USER SUSER_NAME BR />用户数据库ID数字UID USER_ID
用户数据库名USER USER_NAME
当前用户CURRENT_USER CURRENT_USER
用户环境(审计跟踪)USERENV N / A
水平等级N CONNECT BY子句在/ A
聚合函数功能的Oracle的Microsoft SQL Server
平均平均平均
计数计数计数
最大最大最大最小最小最小
标准差STDDEV STDEV或STDEVP
求和SUM SUM
方差方差VAR或VARP
Oracle有一个有用的功能提取物,提取物和返回日期和时间或间隔表达特定的时间域:
EXTRACT(YEAR FROM日期)
‘叁’ SQL里 有没办法把一个表中的一列乘以0.8同时取整数
用ROUND函数,ROUND(COL007*0.8,0)这个是四舍五入进位的
如果是向下取整,用floor()
update zzw set col007 = round(col007*0.8,0) ------这个是四舍五入取整
update zzw set col007 = floor(col007*0.8) ------这个是向下取整
‘肆’ oracle sql字符串转数字问题
1.将字符串类型转换为数字类型。此方法使用tonumber()直接转换。具体语法是tonumber(STR)。
‘伍’ Oracle中如何用SQL把字符串转换成整型
您可以使用cast函数将数字字符串转化为整型。
cast函数格式如下:
CAST(字段名 as int);
拓展资料
结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
结构化查询语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统, 可以使用相同的结构化查询语言作为数据输入与管理的接口。结构化查询语言语句可以嵌套,这使它具有极大的灵活性和强大的功能。
1986年10月,美国国家标准协会对SQL进行规范后,以此作为关系式数据库管理系统的标准语言(ANSI X3. 135-1986),1987年得到国际标准组织的支持下成为国际标准。不过各种通行的数据库系统在其实践过程中都对SQL规范作了某些编改和扩充。所以,实际上不同数据库系统之间的SQL不能完全相互通用。
‘陆’ ORACLE数据库. PL/SQL的时间戳
Oracle
Databse
9i数据库引入了一种新特性,可以存储时间戳。时间戳可以存储世纪、4位年、月、日、时(以24小时格式)、分、秒。与DATE类型相比,时间戳具有以下优点:时间戳可以存储秒的小数位 时间戳可以存储时区。下面介绍时间戳类型。 时间戳类型类
型说
明TIMESTAMP[(seconds_precision)]存储世纪、4位的年、月、日、时(以24小时格式)、分和秒。seconds_precision为可选参数,用于指定精度,该参数为一个整数,范围从0~9,默认值为9;意思是表示秒的数字的小数点右边可以存储9位数字。如果试图在秒的小数中保存超过TIMESTAMP存储精度的数字,那么该小数将被取整TIMESTAMP[(seconds_precision)]WITH
TIME
ZONE扩展TIMESTAMP,用于存储时区TIMESTAMP[(seconds_precision)]WITH
LOCAL
TIME
ZONE扩展TIMESTAMP,将给定的时间值转换成数据库的本地时区。转换过程称为时间值的规格化(normalizingv_timestamp
:=
to_timestamp(to_char(sysdate,
'yyyy-mm-dd
hh24:mi:ss'),'yyyy-mm-dd
hh24:mi:ss.ff');
我认为这句话的意思就是把系统时间转化为时间戳,目的是使时间更精确。
‘柒’ sql 取整数
SELECT CEIL(2/7) FROM DUAL;
‘捌’ oracle 取整的几种方法
关于Oracle取整的函数分别有以下几种:
1.取整(大)
select ceil(-1.001) value from al
2.取整(小)
select floor(-1.001) value from al
3.取整(截取)
select trunc(-1.002) value from al
4.取整(舍入)
select round(-1.001) value from al
‘玖’ sql中对某字段截取前4位后计数
select
d / 100 as 截取前4位后,
count(*) as 各有多少
from
表
group by
d / 100
如果结果中 d / 100 返回了小数, 例如 1234.56
那么你需要使用一个函数来做 取整的 处理
如果你数据库是 Oracle 或者 DB2, 那么
用 TRUNC ( d / 100 ) 替换掉 d / 100
如果你数据库是 SQL Server
用 ROUND( d / 100 , 0, 1 ) 替换掉 d / 100