sql函数

sql 日期时间函数+格式转换

微笑、不失礼 提交于 2019-11-27 12:18:16
<日期时间函数> (可参考下列表格) 转换函数 to_date() 作用将字符类型按一定格式转化为日期类型: 具体用法:to_date(‘2004-11-27’,’yyyy-mm-dd’),前者为字符串,后者为转换日期格式,注意,前后两者要以一对应。 如;to_date(‘2004-11-27 13:34:43’, ‘yyyy-mm-dd hh24:mi:ss’) 多种日期格式: YYYY:四位表示的年份 YYY,YY,Y:年份的最后三位、两位或一位,缺省为当前世纪 MM:01~12的月份编号 MONTH:九个字符表示的月份,右边用空格填补 MON:三位字符的月份缩写 WW:一年中的星期 D:星期中的第几天 DD:月份中的第几天 DDD:年所中的第几天 DAY:九个字符表示的天的全称,右边用空格补齐 HH,HH12:一天中的第几个小时,12进制表示法 HH24:一天中的第几个小时,取值为00~23 MI:一小时中的分钟 SS:一分钟中的秒 SSSS:从午夜开始过去的秒数 to_char():将日期转按一定格式换成字符类型 SQL> select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) time from dual; 1、常用日期方法 (1)DATENAME ( datepart ,date ) 返回表示指定日期的指定日期部分的字符串。

SQL Server字符串函数STUFF的使用

别来无恙 提交于 2019-11-27 07:54:32
前言: 最近有个实践练习是将学生报名数据表student中的[st_id]字段的第二个和第三个字符删除,然后在此位置插入新的字符串“200900”,其实就是替换的意思,生成新的字符串。 STUFF 函数将字符串插入到另一个字符串中。 它从第一个字符串的开始位置删除指定长度的字符;然后将第二个字符串插入到第一个字符串的开始位置。 语法: STUFF ( character_expression , start , length , replaceWith_expression ) 参数说明: character_expression 字符数据的表达式。 character_expression 可以是常量、变量,也可以是字符列或二进制数据列 。 start 一个整数值,指定删除和插入的开始位置。 如果 start 为负或为零,则返回空字符串 。 如果 start 的长度大于第一个 character_expression,则返回空字符串 。 start 的类型可以是 bigint 。 length 一个整数,指定要删除的字符数。 如果 length 为负,则返回空字符串 。 如果 length 的长度大于第一个 character_expression,则最多可以删除到最后一个 character_expression 中的最后一个字符 。 如果 length 为零

Oracle时间运算(转)

允我心安 提交于 2019-11-27 04:17:35
转自: http://www.cnblogs.com/raymond19840709/archive/2009/03/26/1422037.html#part4 目录 ========================================= 1.Oracle的日期函数 2.日期加减 3.月份加减 4.年份加减 5.求每月的最后一天 6.求每月的第一天 7.求下一个星期几 入门知识: ①Oracle中的日期时间存储: oracle数据库中存放时间格式的数据,是以oracle特定的格式存贮的,占7个字节,与查询时显示的时间格式无关。不存贮秒以下的时间单位。 ②Oracle中的日期时间显示: 通常,客户端与数据库建立起连接后,oracle就会给一个缺省的时间格式数据的显示形式,与所使用的字符集有关。一般显示年月日,而不显示时分秒。 ③Oracle中的日期时间插入: 向表中插入数据时,如果不使用转换函数,则时间字段的格式必须遵从会话环境的时间格式,否则不能插入。 ④Oracle中的日期时间格式修改: a.SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; b.册表 \hkey_local_machine\software\oracle\home0 主键中增加一个字串(8i版本),字串名为nls

Oracle时间运算 (转)

喜夏-厌秋 提交于 2019-11-27 04:16:33
转自: http://www.cnblogs.com/raymond19840709/archive/2009/03/26/1422037.html#part4 目录 ========================================= 1.Oracle的日期函数 2.日期加减 3.月份加减 4.年份加减 5.求每月的最后一天 6.求每月的第一天 7.求下一个星期几 入门知识: ①Oracle中的日期时间存储: oracle数据库中存放时间格式的数据,是以oracle特定的格式存贮的,占7个字节,与查询时显示的时间格式无关。不存贮秒以下的时间单位。 ②Oracle中的日期时间显示: 通常,客户端与数据库建立起连接后,oracle就会给一个缺省的时间格式数据的显示形式,与所使用的字符集有关。一般显示年月日,而不显示时分秒。 ③Oracle中的日期时间插入: 向表中插入数据时,如果不使用转换函数,则时间字段的格式必须遵从会话环境的时间格式,否则不能插入。 ④Oracle中的日期时间格式修改: a.SQL> alter session set nls_date_format = 'yyyy-mm-dd hh24:mi:ss'; b.册表 \hkey_local_machine\software\oracle\home0 主键中增加一个字串(8i版本),字串名为nls

sql DATEDIFF 函数

前提是你 提交于 2019-11-27 04:12:56
sql DATEDIFF 函数 今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=1 7天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=7 30天内的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())<=30 半个月的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate()) <=15 本月的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate())=0 上月的所有数据:select * from 表名 where DateDiff(mm,datetime类型字段,getdate()) <=1 本年的所有数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0 --查询今天是今年的第几天 select

insert all 语句 用法详解

寵の児 提交于 2019-11-27 01:37:18
INSERT ALL语句的一些使用技巧。 首先描述一下需求,其实要进行的操作很简单:从一张表取数据插入到另一张表中,插入的目标表做了一个应用系统级的日志表,也就是说在插入目标表的同时,还需要将相同的数据插入到日志表中。 这个操作其实并不复杂,但是想找到一个效率最高、并发性最好的方法并不容易。 最普通的方法是两个INSERT INTO SELECT语句。这种方法编码最简单,但是存在着两次插入的数据不一致的情况。如果要解决这个问题,必须通过人为加锁的方式,这样又会影响并发性。 还有一种方式是通过临时表的方式。第一次将数据放到临时表中,然后通过临时表把数据分别插入目标表和日志表。这种方法虽然解决了并发性问题,但是效率比较低。相同的数据需要查询三次,插入三次。 PL/SQL的语法RETURNING语句其实很适合这种情况,可惜的是RETURNING语句只支持INSERT INTO VALUES语句,不支持INSERT INTO SELECT语句。 如果数据量不大的话,还可以考虑使用SELECT BULK COLLECT INTO和FOR ALL INSERT语句配合。如果数据量比较大的话,可以考虑在上面的基础上加上LIMIT语句限制一次处理的数据量大小。这种方法不但解决了并发性而且只需要读取一次插入两次,执行效率相对比较高。唯一的缺点是,需要将数据放到内存的变量中,不但需要额外的内存空间

Oracle bug 使用max或min函数into到一个char类型报字符缓冲区太小的错误

早过忘川 提交于 2019-11-27 00:18:44
这个BUG出现会报错如下: select to_char( max (RENEWAL_DATE)) into M_YEAR_MONTH from t_renewal_schedule; ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小 这个时候有3个方法可以解决 1、setting initialisation parameter BLANK_TRIMMING=TRUE 2、declare PL/SQL CHAR and VARCHAR2 variable used in the INTO clause of SELECT statement as 4,000 bytes. 3、Use CAST SQL function to constraint the size to that of the variable size like SELECT CAST(MIN('Y') AS CHAR(1)) INTO C FROM DUAL; CAST是强制转换函数。 参数 BLANK_TRIMMING 设置为 TRUE 的时候可以解决我们的 BUG 问题,同时这个参数设置为 TRUE 会在进行变量的赋值的时候忽略末尾的空格,同时这个参数必须关闭 数据库 进行更改。所以请评估下,是否可行。 试验如下: SQL> CREATE TABLE abc ( 2 cont_no

SQL中的replace函数

筅森魡賤 提交于 2019-11-26 23:47:31
? 1 2 3 4 5 6 7 8 9 REPLACE ( string_replace1 , string_replace2 , string_replace3 ) 参数解析: string_replace1 待搜索的字符串表达式。string_replace1 可以是字符数据或二 进制数据 string_replace2 待查找的字符串表达式。string_replace2 可以是字符数据或二 进制数据。 string_replace3 替换用的字符串表达式。string_replace3 可以是字符数据或二 进制数据。    实例 字符串类型参数: ? 1 SELECT REPLACE ( 'abcdefg bcd' , 'bcd' , 'xxx' )    结果为:axxxefg xxx 二进制类型参数: ? 1 2 SELECT REPLACE (100111001101,111,000) SELECT REPLACE (100111001101,111,0) 结果为:100101 结果为:100101 ? 1 2 3 如果参数是支持的字符数据类型之一,并且在string_replace1 中能够找到 string_replace2,那么返回替换后的字符串;反之, 返回 string_replace1; 如果参数是支持的 binary 数据类型之一,则返回二进制数据。  

MYSQL-5-存储过程

不想你离开。 提交于 2019-11-26 22:28:14
变量 全局变量前有@@字符,由系统定义和维护 select @@rowcount;--返回上一条语句执行的条数 select @@version;--返回当前SQL Server服务器的日期版本和处理器类型 局部变量前有@字符,由用户定义和维护 创建函数(了解) use school2; delimiter $$ create function fun_get_sage(str varchar(12)) returns char(12) begin return(select sage from student where sname=str); end; 调用: select fun_get_sage('李彤'); 存储过程 语句 if...then... else if...then... else... end if; label:while... do end while; label:loop end loop; case when...then... when...then... else... end case; 实例一 delimiter $$ create procedure pro_test2() begin select "ok"; end $$ call pro_test2(); 实例二 delimiter $$ create procedure pro

SQL Server复习

梦想与她 提交于 2019-11-26 21:24:36
SQLServer复习(自己的笔记,想在这里做个记录,新手噢) 数据库概述 数据库的概念和作用 数据库是指长期存储在计算机内,有组织的、可共享的数据集合。 数据库的特点: 数据独立性、数据共享、减少数据冗余度、数据的集中控制、维护了数据的完整性、提高了数据的可恢复性。 数据库类型 数据库的类型是根据数据模型来划分的 ,而任何一个数据库管理系统也是根据数据模型有针对性的设计出来的。 层次模型数据库、网状模型数据库、关系模型数据库。 数据模型 数据模型主要是确定系统中数据的定义和格式。 数据模型的类型:概念数据模型、逻辑数据模型、物理数据模型。 它的三要素:描述系统的数据结构(静态)、数据操作(动态)、完整性约束条件。 数据库管理系统 数据库管理系统可以创建、使用和维护数据库。对数据定义,增删改查,对数据进行组织等等。 常见的关系模型数据库:Oracle、DB2、SQL Server. 数据库系统 数据库系统的构成:硬件、软件、数据库、用户。 硬件:主机、存储器、显示器等等。 软件:应用程序、操作系统、数据库管理系统。 用户:终端用户、程序开发人员、数据库管理员。 结构化查询语言 数据定义语句:DDL \ 数据操作语句:DML \ 数据控制语句:DCL 数据库的创建命令:CREATE DATABASE 数据库名; 数据库的删除命令:DROP DATABASE 数据库名; 数据库的切换