当前位置:文档之家› Access SQLServer Oracle日期格式转成字符串函数应用大全

Access SQLServer Oracle日期格式转成字符串函数应用大全

Access SQLServer Oracle日期格式转成字符串函数应用大全
Access SQLServer Oracle日期格式转成字符串函数应用大全

计算机审计中不同数据库日期型字段转换字符型函数应用大全

在计算机审计过程中,经常碰到不同数据类型之间转换,尤其是对日期型数据模糊查询时往往先将字段日期型转换字符型,笔者将ACCESS、SQLSERVER

2000、"ORACLE等数据库日期型转换字符型常用函数进行了罗列,以供大家参考。

一是ACCESS数据库中日期型转换字符型使用函数Format()。其语法:

Format(expression[,format][,firstdayofweek][,firstweekofyear]),参数expression必选,为任何有效的表达式;format可选,有效的命名格式表达式,或用户定义的格式表达式;firstdayofweek可选,指定一周的第一

天;firstweekofyear可选,常量,指定一年的第一周。

语法如下:

select个人编号,姓名,sum(金额)as金额groupby个人编号,姓名whereformat(参保时间,’yymmdd’)between‘’and‘’orderbysum(金额)desc,在

AO2008里面使用Format()函数可以达到同样的效果。

二是SQLSERVER2000数据库中日期型转换字符型。在SQLSERVER2000数据库中有两组日期型转换字符型函数Cast()或convert()。Cast()语法:

CAST(expressionASdata_type[(length)])参数expression,任何有效的表达式;data_type,目标数据类型;length,指定目标数据类型长度的可选整数。默认值

30。"Convert()语法:

CONVERT(datype,expression[,format-style])参数datype,表达式将转换成的数据类型;expression,要转换的表达式;format-style,对于将字符串转换为日期或时间数据类型以及相反的转换过程;format-style是描述要使用的日期格式字符串的样式代码。实现上例使用convert()函数如下:

select个人编号,姓名,sum(金额)as金额groupby个人编号,姓名whereconvert(char

(10),参保时间,112)be tween‘’and‘’orderbysum(金额)desc。

三是ORACLE数据库中日期型转换字符型。使用函数To_char(),

to_char(timestamp,text)把时间戳转换成字串,语法及参数略。实现上例使用具体语法:

select个人编号,姓名,sum(金额)as金额groupby个人编号,姓名

whereto_char(参保日期,’yymmdd’)between‘’and‘’orderbysum(金额)desc。

oracle函数

许多软件公司都理解开发不依赖于特定数据库类型(例如Oracle、SQL Server、DB2)的应用程序的重要性,它可以让客户们选择自己习惯的平台。一般来说,软件开发人员都能够识别出他们的负责数据库维护的客户,和必须使用现有平台和个性化的客户。 关于Oracle和SQL Server之间的区别,已经有很多篇文章从企业的角度和数据库管理员的角度出发描写了两者之间的一般差别。在这篇文章里面,我将会从应用程序的角度向你描述SQL erver 和oracle平台之间的区别,并且将会讨论开发不依赖于数据库环境的应用程序的几种可能的方法。与此同时,我不会再论讨对于应用程序来说,两个平台之间显而易见的区别,例如表的分割和索引。 定义通用接口和语言有很少的几种通用语言和接口可以让应用程序不依赖于数据库,想来也可以以同样的方式应用在关系型数据库上面: ANSI是美国国家标准局定义的,这是一家志愿者成员的组织(用私人基金运转),他们在有关设备和程序等广泛领域内开发了国家承认的标准。在数据库领域, ANSI定义了编写SQL命令的标准,假设命令可以运行在任何的数据库上,而不需要更改命令的语法。 ODBC是开放数据库连接(ODBC)接口,微软定义的,它可以让应用程序访问数据库管理系统(DBMS)中的数据,使用SQL作为访问数据的标准。 ODBC允许最大的互联性,这意味着一个单个的应用程序可以访问不同的数据库管理系统。然后,应用程序终端用户可以添加开放数据库连接(ODBC)数据库驱动来将应用程序与他们所选择的数据库管理系统链接上。 OLE DB 是ODBC的继承者,是一组允许例如基于VB、C++、Access等任何可以连接到类似SQL Server、Oracle、DB2、MySQL等后台的“前台”的软件组件。在许多种情况下,OLE DB组件都比原有的ODBC提供了好得多的性能。 JDBC(Java数据库连接)应用程序接口是Java编程语言和广泛范围的数据库,SQL数据库和其他表列数据源(例如电子表格或者普通文本文件)之间,进行不依赖于数据库的连接的行业标准。JDBD应用程序接口为基于SQL的数据库访问提供了调用级别的应用程序接口。真实世界中的通用接口不幸的是,并不是所有数据库级别的命令都是ANSI,每个数据库平台都有自己的扩展功能。对于ANSI或者通用接口,一般来说都代表着几本功能,因此也可能意味着丧失了性能方面的竞争力。对于小型数据库和小型应用程序来说,要维护对数据库的通用访问是简单的,但是当数据库和/或应用程序变得越来越大,越来越复杂,你就不得不向代码中添加功能。 SQL Server和Oracle的常用函数对比 ---------数学函数 1.绝对值 S:select abs(-1) value O:select abs(-1) value from dual 2.取整(大) S:select ceiling(-1.001) value O:select ceil(-1.001) value from dual

Oracle的to_date函数

Oracle的to_date函数 日期格式参数含义说明 D一周中的星期几 DAY天的名字,使用空格填充到9个字符 DD月中的第几天 DDD年中的第几天 DY天的简写名 IW ISO标准的年中的第几周 IYYYISO标准的四位年份 YY四位年份 YYY,YY,Y年份的最后三位,两位,一位 HH小时,按12小时计 HH24小时,按24小时计 MI分 SS秒 MM月 Mon月份的简写注: 在不同的语言下显示出来的数据不同,在中文下显示为5月,在英文下显示为MAY Month月份的全名 W该月的第几个星期

WW年中的第几个星期 1.日期时间间隔操作 当前时间减去7分钟的时间 select sysdate,sysdate -interval ’7’ MINUTE from dual 当前时间减去7小时的时间 select sysdate -interval ’7’ hour from dual 当前时间减去7天的时间 select sysdate - interval ’7’ day from dual 当前时间减去7月的时间 select sysdate,sysdate -interval ’7’ month from dual 当前时间减去7年的时间 select sysdate,sysdate -interval ’7’ year from dual 时间间隔乘以一个数字 select sysdate,sysdate -8 *interval ’2’ hour from dual 2.日期到字符操作 select sysdate,to_char(sysdate,’y y-mm-dd hh24:mi: ss’) from dual select sysdate,to_char(sysdate,’yy-mm-dd hh: mi: ss’) from dual select sysdate,to_char(sysdate,’yy-ddd hh:

Oracle 常见函数(一)——数值函数

Oracle常见数值函数 ----***特别说明***: x 可以是纯的数值,也可以是数值型表达式/* ABS(x)返回x绝对值 eg. */ selectabs(100),abs(-100) from dual; /* sign(x)判断x的正负,正数返回1,负数返回-1,0返回0; eg. */ selectsign(100),sign(-100),sign(0) from dual;

/* round(x[,n])对x进行四舍五入,保留n位小数,其中n采用其整数部分; 没有n时默认四舍五入到整数位,n为负数时,四舍五入保留小数点左边n位(补零), eg. */ selectround(5555.6666, 2.1), round(5555.6666, -2.6), round(5555.6666) from dual; /* trunc(x)对x进行直接截取,保留n位小数,其中n采用其整数部分; 没有n时默认截取到整数位,n为负数时,截取保留小数点左边n位(补零), eg. */ selecttrunc(5555.66666,2.1), trunc(5555.66666,-2.6), trunc(5555.033333) from dual; /* ceil(x)对x进行向上取整,返回不小于x的最小整数(可以是整数x本身)。

eg. */ selectceil(3.1), ceil(2.8+1.3), ceil(0) from dual; /* floor(x)对x进行向下取整,返回不大于x的最大整数(可以是整数x本身)。eg. */ selectfloor(3.1), floor(2.8+1.3), floor(0) from dual; /* mod(x,y)求x除以y的余数,x,y为数字型表达式。 eg. */ selectmod(23,8),mod(24,8) from dual;

Oracle函数详解(经典)

Oracle常用函数/过程说明主要介绍Oracle的系统函数、过程和包。 SQL常用函数: 数值函数: ABS Purpose 返回绝对值 Returns the absolute value of n. Example SELECT ABS(-15) "Absolute" FROM DUAL; Absolute ---------- 15 CEIL Purpose 取最小整数 Returns smallest integer greater than or equal to n. Example SELECT CEIL(15.7) "Ceiling" FROM DUAL;

Ceiling ---------- 16 * MOD Syntax MOD(m,n) Purpose 取余 Returns remainder of m divided by n. Returns m if n is 0. Example SELECT MOD(11,4) "Modulus" FROM DUAL; Modulus ---------- 3 * ROUND Syntax ROUND(n[,m]) Purpose 取四舍五入信息 Returns n rounded to m places right of the decimal point; if m is omitted, to 0 places. m can be negative to round off digits left of the decimal point. m must be an integer.

ORACLE常用函数和一些项目中常用的SQL语句

Oracle笔记 实现中英文转换 Alter session set nls_language=‘ADMIN’ 从已知表中复制数据和结构 Create table test as select * from dept; 从已知表中复制数据和结构,但是不包括数据 Create table test as select * from dept where 1=2 插入数据 Insert into test select * from dept 二、运算符 +——*/可以在select 语句中使用 ||连接两个字段,select deptno ||dname from dept 比较运算付:> >= = !=< <= 逻辑运算符:not ,or 集合运算符:intersect,union,union all,minus, 使用ord er by 的时候必须使用位置序号,不能使用列名 Select *from emp intersect select * from emp where deptno=10; Select *from emp minus select * from emp where deptno=10; ---不包括重复行 Select *from emp where deptno=10 union select * from emp where deptno in(10,20);----包括重复行 Select *from emp where deptno=10 union all select * from emp where deptno in(10,20); 三、常用ORACLE函数

DATE 函数

技术细节 DATE函数返回表示特定的日期序列号。 语法︰DATE(year,month,day) DATE 函数语法具有下列参数: ?年份必需。年参数的值可以包括一到四位数字。Excel 将解释年参数根据您的计算机使用的日期系统。默认情况下,Microsoft Excel for Windows 使用1900年日期系统,这意味着1900 年 1 月 1 日的第一个日期。 提示:使用四位数年份参数以防止不需要的结果。例如,"07"意味着"1907"或"2007"。四位数年份防止混淆。 o如果year介于0(零)到1899 之间(包含这两个值),则Excel 会将该值与1900 相加来计算年份。例如,DATE(108,1,2)返回2008 年1 月2 日(1900+108)。 o如果year介于1900 到9999 之间(包含这两个值),则Excel 将使用该数值作为年份。例如,DATE(2008,1,2)将返回2008 年1 月 2 日。 o如果year小于0 或大于等于10000,则Excel 返回错误值#NUM!。 ?月必需。一个正整数或负整数,表示一年中从1 月至12 月(一月到十二月)的各个月。o如果month大于12,则month会将该月份数与指定年中的第一个月相加。例如,DATE(2008,14,2)返回代表2009 年 2 月2 日的序列数。 o如果month小于1,month则从指定年份的一月份开始递减该月份数,然后再加上1 个月。例如,DATE(2008,-3,2)返回代表2007 年9 月2 日的序列号。 ?日必需。一个正整数或负整数,表示一月中从1 日到31 日的各天。 o如果day大于月中指定的天数,则day会将天数与该月中的第一天相加。例如,DATE(2008,1,35)返回代表2008 年 2 月4 日的序列数。 o如果day小于1,则day从指定月份的第一天开始递减该天数,然后再加上1 天。例如,DATE(2008,1,-15)返回代表2007 年12 月16 日的序列号。 注意: Excel 将日期存储为序列号,以便可以在计算中使用它们。1900 年 1 月 1 日是序列号1,和2008 年1 月 1 日是序列号39448,因为它是39,447 1900 年1 月1 日的天数。 您将需要更改的数字格式(单元格格式)以显示正确的日期。

Excel中如何将日期格式进行转换

在EXCEL中如何将日期格式转换 如何将格式转换成1900-01-01的格式? 如果日期所在单元格在A列,并从A1开始。 1、插入一辅助列B列, 2、在B1输入:=MID(A1,1,4)&-MID(A1,5,2)&-MID(A1,7,2)回车, 3、向下填充该公式。 4、选中B列→复制→粘贴→选择性粘贴→数值→确定 5、删除A列 在EXCEL中如何利用身份证号码提取出生时间 假设身份证号在A1,时间格式为1900-1-1 =IF(LEN(A1)=15,"19"&MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2),MID(A1,7,4)&"-"&MID(A1 ,11,2)&"-"&MID(A1,13,2)) 在EXCEL中如何利用身份证号码提取性别 =IF(LEN(A1)=15,IF(MOD(MID(A1,15,1),2)=1,"男","女") , IF(MOD(MID(A1,17,1),2)=1,"男","女") ) 在EXCEL中如何利用身份证号码计算周岁 假设身份证号在C1,时间格式为1900-1-1,出生时间为X 答案1: =DATEDIF(IF(LEN(A1)=15,"19"&MID(A1,7,2)&"-"&MID(A1,9,2)&"-"&MID(A1,11,2),MID(A1,7,4)&"-" &MID(A1,11,2)&"-"&MID(A1,13,2)),TODAY(),”y”) 简化之:=DATEDIF(X,TODAY(),”y”) 答案2: =TEXT(TODAY()-IF(LEN(C1)=15,"19"&MID(C1,7,2)&"-"&MID(C1,9,2)&"-"&MID(C1,11,2),MID(C1,7,4) &"-"&MID(C1,11,2)&"-"&MID(C1,13,2 )),"yy") 简化之:=TEXT(TODAY()-X,”yy”) 在EXCEL中如何利用身份证号码计算周岁 假设身份证号在C1: =IF(C1="","",IF(IF(LEN(C1)=15,"19"&MID(C1,7,2)&"-"&MID(C1,9,2)&"-"&MID(C1,11,2),MID(C1,7,4) &"-"&MID(C1,11,2)&"-"&MID(C1,13,2))>"2009-12-31","",TEXT(TODAY()-IF(LEN(C1)=15,"19"&MID( C1,7,2)&"-"&MID(C1,9,2)&"-"&MID(C1,11,2),MID(C1,7,4)&"-"&MID(C1,11,2)&"-"&MID(C1,13,2))," yy")))

oracle中常用函数大全

oracle中常用函数大全 1、数值型常用函数 函数返回值样例显示 ceil(n) 大于或等于数值n的最小整数select ceil(10.6) from dual; 11 floor(n) 小于等于数值n的最大整数select ceil(10.6) from dual; 10 mod(m,n) m除以n的余数,若n=0,则返回m select mod(7,5) from dual; 2 power(m,n) m的n次方select power(3,2) from dual; 9 round(n,m) 将n四舍五入,保留小数点后m位select round(1234.5678,2) from dual; 1234.57 sign(n) 若n=0,则返回0,否则,n>0,则返回1,n<0,则返回-1 select sign(12) from dual; 1 sqrt(n) n的平方根select sqrt(25) from dual ; 5 2、常用字符函数 initcap(char) 把每个字符串的第一个字符换成大写select initicap('mr.ecop') from dual; Mr.Ecop lower(char) 整个字符串换成小写select lower('MR.ecop') from dual; mr.ecop replace(char,str1,str2) 字符串中所有str1换成str2 select replace('Scott','s','Boy') from dual; Boycott substr(char,m,n) 取出从m字符开始的n个字符的子串select substr('ABCDEF',2,2) from dual; CD length(char) 求字符串的长度select length('ACD') from dual; 3 || 并置运算符select 'ABCD'||'EFGH' from dual; ABCDEFGH 3、日期型函数 sysdate当前日期和时间select sysdate from dual;

nextdate函数

#include int check(int y,int m,int d) { if (d<1||d>31) { return 0; } else if (m<1||m>12) { return 0; } else if (y<1900||y>2100) { return 0; } return 1; } int a(int y) { return(y%4||y%100&&!(y%400)); } //30天 int b(int m ) { return (m==4||m==6||m==9||m==11); } //31天 int c(int m) { return (m==1||m==3||m==5||m==7||m==8||m==10||m==12); } int nextdate() { int year,month,day; printf("Year="); scanf("%d",&year);

printf("Month="); scanf("%d",&month); printf("Day="); scanf("%d",&day); if (check(year,month,day)) { if ((day==28&&month==2&&!a(year))||(day==29&&month==2&&a(year))) { day=1; month=3; } else if (day==30&&b(month)||day==31&&c(month)) { day=1; month++; } else day++; if (month>12) { month=1; ++year; } printf("Next date:%d-%d-%d\n",year,month,day); } else printf("无T效?ì输o?入¨?日¨?期¨2\n"); return 0; } void main() { int i=1; while(i) {printf("开a始o?计?算?:\n"); if(i==1) { nextdate(); } }

Excel中 的日期格式转换问题

Excel中日期格式转换问题 工作表中出生年月格式格式是如:19870705 19861106 19881109如果想改成1987-7-5或改成1987年7月7日。1、就用此函数插入一列如B列,B1=(LEFT(A1,4)&"-"&MID(A1,5,2)&"-"&RIGHT(A1,2))+0 其它单元格可以用此公式自动填充。然后把此单元格设置成日期2001-3-14 ;2、插入一列如B列 B1=(LEFT(A1,4)&"年"&MID(A1,5,2)&"月"&RIGHT(A1,2)&"日")+0 其它单元格可以用此公式自动填充。然后把此单元格设置成日期2001年3月14 日。 把这种格式2009.2.22转换成2009-02这样的格式:假如原始数据在A列从A1开始,则在B1输入公式=TEXT(SUBSTITUTE(A1,".","-"),"yyyy-mm"),然后下拉复制公式即可。 在Excel中将非日期格式数据转换为日期格式 如果Excel表格中有大量的类似“20090510”、“2009.5.10”非日期格式的数据要转换为日期格式,如“2009-5-10”,可以用分列的方法: 1.选择需要转换单元格或区域,单击菜单“数据→分列”,弹出“文本分列向导- 3之步骤1”对话框。如果是Excel 2007,则在功能区中选择“数据”选项卡,在“数据工具”组中,单击“分列”按钮。 2.单击两次“下一步”,在“文本分列向导- 3之步骤3”中,在“列数据格式”中选择“日期”。还可以根据需要,在其后的下拉列表中选择一种日期格式。本例为默认的“YMD”格式。 3.单击“完成”按钮,Excel会在原单元格或区域中将数值格式的“20090510”和文本格式的 “2009.5.10”转换为日期格式“2009-5-10”。 另外,对于“2009.5.10”文本格式的数据,还可以将“.”替换为“-”,也可以转换为日期格式。 在EXCEL中如何利用身份证号码计算出生年月年龄及性别 1、身份证号码简介(18位): 1~6位为地区代码;7~10位为出生年份;11~12位为出生月份;13~14位为出生日期;15~17位为顺序号,并能够判断性别,奇数为男,偶数为男;第18位为校验码。 2、确定“出生日期”: 18位身份证号码中的生日是从第7位开始至第14位结束。提取出来后为了计算“年龄”应该将“年”“月”“日”数据中添加一个“/”或“-”分隔符。 ①正确输入了身份证号码。(假设在D2单元格中) ②将光标定位在“出生日期”单元格(E2)中,然后在单元格中输入函数公式 “=MID(D2,7,4)&"-"&MID(D2,11,2)&"-"&MID(D2,13,2)”即可计算出“出生日期”。

Oracle常用函数及使用案例(珍藏版)

Oracle常用函数及使用案例(珍藏版) 一:sql函数: lower(char):将字符串转化为小写的格式。 upper(char):将字符串转化为大写的格式。 length(char):返回字符串的长度。 substr(char,m,n):取字符串的字串。 案例1.将所有员工的名字按小写的方式显示 select lower(ename),sal from emp; 案例2.将所有员工的名字按大写的方式显示。 select upper(ename),sal from emp; 案例3.显示正好为五个字符的的员工的姓名。 select * from emp where length(ename)=5; 案例4.显示所有员工姓名的前三个字符。 select substr(ename,1,3) from emp;//从名字的第一个字符开始取,向后取三个字符。 案例5.以首字母为大写的方式显示所有员工的姓名。 (1)首字母大写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母小写。select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并select upper(substr(ename,1,1))||lower(substr(ename,2,length(ename)-1)) from emp; 案例6.以首字母为小写的方式显示所有员工的姓名。(需要有较高的灵活度,细心分析和清晰思路) (1)首字母小写:select upper(substr(ename,1,1)) from emp; (2)完成后面字母大写。select lower(substr(ename,2,length(ename)-1)) from emp; (3)合并select lower(substr(ename,1,1))||upper(substr(ename,2,length(ename)-1)) from emp; 案例7.函数(替换):replace(char1,search_string,replace_string); 显示所有员工的姓名,用“我要替换A”替代所有“A”。 select replace(ename,'A','我是老鼠')from emp; 案例8.以首字母为小写的方式显示所有员工的姓名。 select replace(ename,substr(ename,1,1),lower(substr(ename,1,1)))from emp; 案例9.以首字母为大写的方式显示所有员工的姓名。 Select replace(ename,substr(ename,2,length(ename)-1),lower(substr(ename,2,length(ename) -1)))from emp; 二:数学函数:(在财务中用的比较多) ronud(sal)用于四舍五默认取整; ronud(sal,1)用于四舍五留一位小数。 trunc(sal)取整,忽略小数。截去小数部分。 trunc(sal,1)截取;小数点留一位,之后的右边的省去。 trunc(sal,-1)截取;只留整数,个位数取零。 floor(sal)向下最接近取整;比如1.1值为1.

PHP中的Date()函数详细讲解

PHP中的Date()函数详细讲解 1,年-月-日echo date('Y-m-j');2007-02-6 echo date('y-n-j');07-2-6 大写Y表示年四位数字,而小写y表示年的两位数字;小写m表示月份的数字(带前导),而小写n则表示不带前导的月份数字。 echo date('Y-M-j');2007-Feb-6 echo date('Y-m-d');2007-02-06 大写M表示月份的3个缩写字符,而小写m则表示月份的数字(带前导0);没有大写的J,只有小写j表示月份的日期,无前导o;若需要月份带前导则使用小写d。 echo date('Y-M-j');2007-Feb-6 echo date('Y-F-jS');2007-February-6th 大写M表示月份的3个缩写字符,而大写F表示月份的英文全写。(没有小写f)大写S 表示日期的后缀,比如“st”、“nd”、“rd”和“th”,具体看日期数字为何。 小结:表示年可以用大写的Y和小写y;表示月可以用大写F、大写M、小写m和小写n(分别表示字符和数字的两种方式);表示日可以用小写d和小写j,大写S表示日期的后缀。 2,时:分:秒 默认情况下,PHP解释显示的时间为“格林威治标准时间”,与我们本地的时间相差8个小时。 echo date('g:i:s a');5:56:57 am echo date('h:i:s A');05:56:57 AM 小写g表示12小时制,无前导0,而小写h则表示有前导0的12小时制。当使用12小时制时需要表明上下午,小写a表示小写的“am”和“pm”,大写A表示大写的“AM”和“PM”。 echo date('G:i:s');14:02:26 大写G表示24小时制的小时数,但是不带前导的;使用大写的H表示带前导的24小时制小时数 小结:字母g表示小时不带前导,字母h表示小时带前导;小写g、h表示12小时制,大写G、H表示24小时制。 3,闰年、星期、天 echo date('L');今年是否闰年:0 echo date('l');今天是:Tuesday echo date('D');今天是:Tue 大写L表示判断今年是否闰年,布尔值,为真返回1,否则为0;小写l表示当天是星期几的英文全写(Tuesday);而使用大写D表示星期几的3个字符缩写(Tue)。 echo date('w');今天星期:2 echo date('W');本周是全年中的第06 周 小写w表示星期几,数字形式表示大写W表示一年中的星期数 echo date('t');本月是28 天 echo date('z');今天是今年的第36 天 小写t表示当前月份又多少天小写z表示今天是本年中第几天 4,其他 echo date('T');UTC大写T表示服务器的时间区域设置

oracle常用函数列表速查 (1)

Oracle常用函数列表速查 PL/SQL单行函数和组函数详解 函数是一种有零个或多个参数并且有一个返回值的程序。在SQL中Oracle内建了一系列函数,这些函数都可被称为SQL或PL/SQL语句,函数主要分为两大类: 单行函数 组函数 本文将讨论如何利用单行函数以及使用规则。 SQL中的单行函数 SQL和PL/SQL中自带很多类型的函数,有字符、数字、日期、转换、和混合型等多种函数用于处理单行数据,因此这些都可被统称为单行函数。这些函数均可用于SELECT,WHERE、ORDER BY 等子句中,例如下面的例子中就包含了TO_CHAR,UPPER,SOUNDEX等单行函数。 SELECT ename,TO_CHAR(hiredate,'day,DD-Mon-YYYY')FROM empWhere UPPER(ename) Like 'AL%'ORDER BY SOUNDEX(ename) 单行函数也可以在其他语句中使用,如update的SET子句,INSERT的V ALUES子句,DELET 的WHERE子句,认证考试特别注意在SELECT语句中使用这些函数,所以我们的注意力也集中在SELECT语句中。 NULL和单行函数 在如何理解NULL上开始是很困难的,就算是一个很有经验的人依然对此感到困惑。NULL值表示一个未知数据或者一个空值,算术操作符的任何一个操作数为NULL值,结果均为提个NULL值,这个规则也适合很多函数,只有CONCAT,DECODE,DUMP,NVL,REPLACE在调用了NULL参数时能够返回非NULL值。在这些中NVL函数时最重要的,因为他能直接处理NULL值,NVL有两个参数:NVL(x1,x2),x1和x2都式表达式,当x1为null时返回X2,否则返回x1。 下面我们看看emp数据表它包含了薪水、奖金两项,需要计算总的补偿 column name emp_id salary bonuskey type pk nulls/unique nn,u nnfk table datatype number number numberlength 11.2 11.2 不是简单的将薪水和奖金加起来就可以了,如果某一行是null值那么结果就将是null,比如下面的例子: update empset salary=(salary+bonus)*1.1 这个语句中,雇员的工资和奖金都将更新为一个新的值,但是如果没有奖金,即salary + null,那么就会得出错误的结论,这个时候就要使用nvl函数来排除null值的影响。 所以正确的语句是: update empset salary=(salary+nvl(bonus,0)*1.1

日期时间函数的应用

日期时间函数的应用 1. 使用什么函数可以显示当前的日期 可以使用Today 函数啦实现。Today 没有参数。 2. 使用什么函数可以将数值转化为日期格式 可以使用date函数来实现。Date函数用于计算特定日期的系列编号。Date (年,月,日) 3. 想建立一个活动的倒计时显示牌,可以使用什么函数实现 可以使用date与today两个函数配合实现。【二Date (年,月,日)-today ()&,”天”】- 4. 通过什么方法可以将非日期的数据转化为标准的日期 利用data 可以实现将这种非日期数据转化为标准的日期。【=data(mid (,1,4),mid(,5,2)),mid(,7,2)】 5. datevalue 函数怎吗使用 datevalue 函数可以将日期转化为所对应的序列号。【datevalue(date- text)】date-text 为日期文本 6. 怎样计算两个日期之间的间隔天数 可以使用datevalue 函数来实现。【二datevalue (” dateext ” -datevalue (” dat-etext ”】 7. 要从指定日期中获取天数,可以使用什么函数来实现 要获得任意日期对应当月的天数,可以使用day函数来实现。【day (serial-number)】 serial-number 表示指定的日期。 8. 如果给定日期所对应的序列号,是否可以返回其对应的天数。 可以使用day函数来实现。【day (serial-number) ] serial-number表示指定

的日期。 9. d ays360函数怎么用、 days360函数是按照一年360天地算法返回两个日期的相差天数【days360 ( start-date,end-date,method)] start-date: 表示计算的起始日期。End-date表示终止日期。method表示计算采用欧洲方法或美国方法。( true: xx,false: xx) 1 0."如何判断所购买的产品是否在保修期内(精确到天) 可以根据产品购买的时间以及保修天数,可以使用days360函数快速判断 出产品是否在保修期限之内。【=days360(,today(),false)] 1 1. "如何从产品的购买日期之中提取购买月份值 可以使用month 函数来快速获取。Month 用于计算指定日期所对应的月份【month( serial-number)] 1 2. "如何根据员工的出生日期快速计算其年龄 可以使用datedif 函数来实现。【datedif (date1,date2, code)date1 :表示起始日期。 date2 :表示结束日期。Code: 表示返回两个日期的参数代码。】datedif 可以用于计算两个日期之间的年 数,月数,天数 1

excel中不同日期格式的相互转换

@布兜的夏天 一、用date 函数将不同单元格的年月日转换为日期格式 DATE 函数用于计算某一特定日期的系列编号。 语法形式。DATE(year, month. day) year:表示指定的年份。 month:表示每年中月份的数字。如果所输入的月份大于12,将从指定年份一月份开始往上累加。 day:表示在该月份中第几天的数字。如果day 大于该月份的最大天数时,将从指定月数的第一天开 始往上累加。 选择D2单元格,输入“=DATE(A2,B2,C2)”,按回车,即可将数值转换为日期显示(日期所需的格式通过设置单元格进行设置)。下拉可以自动将其他的数值转换为日期显示。 二、用date 函数将同一单元格的年月日转换为日期 1、将2007.03.17转换为2007年3月17日 用type 函数检测,如2007.03.17在A1,则=type (A1)。发现2007.03.17的是当作"文本"。这种情况下用鼠标选定该列数据,点“替换”,将“.”全部替换成“-”就可以了。如图。若要日期格式为2007年3月17日这种格式,则再用右键设置单元格格式即可。 2、20070317类型转换为2007年3月17日 用TYPE 函数检测20070317是当作"数值"来处理。 20070317类型,假定原数据在A 列,则公式为=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)) 下拉填充即可。不需要公示的话就选择粘贴仅保留数值即可。 LEFT 函数用于从一个文本字符串的第一个字符开始返回指定个数的字符。LEFT( string, n ) MID 是从一个字符串中截取出指定数量的字符。mid(text, start_num, num_chars) right 函数的功能是从字符串右端取指定个数字符。 语法Right ( string, n ) 。 三、将2007年3月17日的日期格式转换为20070317的格式 有两种办法。一是点击右键设置单元格格式,点击自定义,输入yyyymmdd ,即可完成转换。 二是用text 函数。=TEXT(A1,"yyyymmdd")即可。 TEXT 将数值转换为按指定数字格式表示的文本。语法 TEXT(value,format_text)

NextDate函数测试用例

1.测试程序源代码 #include"stdafx.h" #include using namespace std; void NextDate(int year,int month,int day); void main() { int year=0,month=0,day=0; NextDate(year,month,day); } void NextDate(int year,int month,int day) { cout<<"请输入年份:"<>year; while(!(year>=1911 && year<=2013)) { cout<<"年份超过界限,请重新输入"<>year; } cout<<"请输入月份:"<>month; while (month>12||month<1) { cout<<"月份输入有误,请重新输入"<>month; } cout<<"请输入日期:"<>day; while (day>31||day<1) { cout<<"日期输入有误,请重新输入"<>day; } while(month==4&&day==31||month==6&&day==31||month==9&&day==31||month==11&&da y==31) { cout<<"小月没有31号"<>day; } if((year%4==0 && year%100!=0) || (year%400==0)) //检查闰年; {

简道云函数举例-将日期控件转换成 XXXX-XX-XX的格式

简道云函数举例-将日期控件转换成 XXXX-XX-XX的格式

简道云函数举例-将日期控件转换成 XXXX-XX-XX的格式第三个例子将产生一点点难度,难度在于,用户对时间格式的理解。 简道云中的日期时间控件,在计算机中的计算格式是“时间戳”。什么是“时间戳”?

如上图所示,对日期时间控件取值的时候,得到的是13位的数字。这就是时间戳的表达形式时间戳是以毫秒为单位,每逢秒,分,时,日,月,年进位的数值。以1970年1月1日世界时间0:00:00为0值的数值。早于这个时间的时间戳为负,晚于这个时间的为正。 可能比较难理解,如果暂时理解不了,只要记住如果要对“日期时间控件做函数”,要用TIMESTAMP()函数把计算的结果框起来,赋给时间日期,即可返回结果。 说了这么多强调时间戳的目的是什么呢?我们计算日期时间的函数,是以时间对象为基础的。时间对象的表达形式有多种,可以参考帮助文档。所以在对日期控件进行计算的时候,要先把时间戳转换成时间对象,再进行计算。我们来做一做这个函数: 要用到的函数: DATE() 把日期时间(时间戳)转换成时间对象 YEAR() 取出时间对象中的年份 MONTH() 取出时间对象中的月份 DAY() 取出时间对象中天数

CONCATENATE() 连接函数,把分拆提取的年、月、日和短线符号“-”连接起来,简称CON函数 下面还有几个函数是用来增加1-9月和1-9日前面的0的,就是01月01日。 RIGHT(a,b) 从字符串a的右边取字符,取b个 TEXT() 把数字格式变成文本格式(VALUE()的反函数) 那么我们这个函数该怎么写呢? YEAR(DATE(时间日期)) MONTH(DATE(时间日期)) DAY(DATE(时间日期)) 这三个式子已经将年月日分别取出来了,用CON函数连接为: CONCATENATE(YEAR(DATE(时间日期)),'-',MONTH(DATE(时间日 期)),'-',DAY(DATE(时间日期))) 这个式子这么写就已经可以应用了,单引号引用的是英文字符或英文符号。我们看看效果:

Oracle中TO_DATE函数

Oracle中TO_DATE函数 Oracle中TO_DATE格式 TO_DATE格式(以时间:2007-11-02 13:45:25为例) Year: yy two digits 两位年显示值:07 yyy three digits 三位年显示 值:007 yyyy four digits 四位年显示值:2007 Month: mm number 两位月显示值:11 mon abbreviated 字符集表示显示值:11月,若是英文版,显示nov month spelled out 字符集表示显示值:11月,若是英文版,显示november

Day: dd number 当月第几天显示值:02 ddd number 当年第几天显示值:02 dy abbreviated 当周第几天简写显示值:星期五,若是英文版,显示fri day spelled out 当周第几天全写显示值:星期五,若是英文版,显示friday ddspth spelled out, ordinal twelfth Hour: hh two digits 12小时进制 显示值:01 hh24 two digits 24小时进制显示值:13 Minute: mi two digits 60进制 显示值:45 Second:

ss two digits 60进制 显示值:25 其它 Q digit 季度 显示值:4 WW digit 当年第几周 显示值:44 W digit 当月第几周 显示值:1 24小时格式下时间范围为:0:00:00 - 23:59:59.... 12小时格式下时间范围为:1:00:00 - 12:59:59 .... 1. 日期和字符转换函数用法(to_date,to_char) select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') as nowTime from dual; //日期转化为字符串 select to_char(sysdate,'yyyy') as nowYear from dual; //获取时间的年 select to_char(sysdate,'mm') as nowMonth from dual; //获取时间的月

相关主题
文本预览
相关文档 最新文档