sql函数

SQL时间差函数timediff,timestampdiff,datediff

穿精又带淫゛_ 提交于 2019-12-01 02:27:50
时间差函数: timestampdiff 语法: timestampdiff(interval, datetime1,datetime2) 结果: 返回(时间2-时间1)的时间差,结果单位由interval参数给出。 frac_second 毫秒(低版本不支持,用second,再除于1000) second 秒 minute 分钟 hour 小时 day 天 week 周 month 月 quarter 季度 year 年    注意: MySQL 5.6之后才支持毫秒的记录和计算,如果是之前的版本,最好是在数据库除datetime类型之外的字段,再建立用于存储毫秒的int字段,然后自己进行转换计算。 # 所有格式 SELECT TIMESTAMPDIFF(FRAC_SECOND,'2012-10-01','2013-01-13'); # 暂不支持 SELECT TIMESTAMPDIFF(SECOND,'2012-10-01','2013-01-13'); # 8985600 SELECT TIMESTAMPDIFF(MINUTE,'2012-10-01','2013-01-13'); # 149760 SELECT TIMESTAMPDIFF(HOUR,'2012-10-01','2013-01-13'); # 2496 SELECT TIMESTAMPDIFF(DAY,

通过ASP.NET连接Oracle数据库

梦想与她 提交于 2019-11-30 17:13:36
1。System.Data.OracleClient 和 System.Data.OleDb 命名空间   虽然通过这两个命名空间的类都可以访问 Oracle 数据库,但和 SQL Server 类似的(System.Data.SqlClient 命名空间的类效率要比 System.Data.OleDb 命名空间中的类高一些),System.Data.OracleClient 命名空间中的类要比 System.Data.OleDb 命名空间的类效率高一些(这一点我没有亲自验证,但大多数地方都会这么说,而且既然专门为 Oracle 作的东西理论上也应该专门作过针对性的优化)。   当然还有另一点就是从针对性上说,System.Data.OracleClient 要更好一些:   比如数据类型,System.Data.OleDb.OleDbType 枚举中所列的就没有 System.Data.OracleClient.OracleType 枚举中的那些有针对性;另外,Oracle 的Number 类型如果数字巨大,超出 .NET 数据类型范围的情况中,就必须使用System.Data.OracleClient 中的专门类 -- OracleNumber 类型。   好了,不再赘述这两个的比较,下面主要讨论System.Data.OracleClient 命名空间中的类型,即 ADO

SQL Server 内置函数实现MD5加密

本小妞迷上赌 提交于 2019-11-30 11:52:42
原文: SQL Server 内置函数实现MD5加密 一、MD5加密 HASHBYTES ('加密方式', '待加密的值') 加密方式 = MD2 | MD4 | MD5 | SHA | SHA1 返回值类型 :varbinary(maximum 8000 bytes) 二、MD5加密示例 select HASHBYTES('MD5','123456') HASHBYTES生成的结果为:0xE10ADC3949BA59ABBE56E057F20F883E 注意: 一般工具生成的都是没有0x和是小写的,16进制的数值,去掉“0x”转换为小写值就完全与MD5值吻合了。 在此需要用另一个函数 (sys.fn_sqlvarbasetostr) 把varbinary的值转换为varchar类型的 select sys.fn_sqlvarbasetostr(HASHBYTES('MD5','123456')) 结果:0xe10adc3949ba59abbe56e057f20f883e 截取去掉0x select substring(sys.fn_sqlvarbasetostr(HASHBYTES('MD5','123456')),3,32) 结果就是完整的MD5值:e10adc3949ba59abbe56e057f20f883e 三、SQL截取字符串substring substring

sql语句replace函数的使用

£可爱£侵袭症+ 提交于 2019-11-30 09:46:13
SQL中的替换函数replace()使用 语法 REPLACE ( string_expression , string_pattern , string_replacement ) 参数 string_expression 要搜索的字符串表达式。string_expression 可以是字符或二进制数据类型。 string_pattern 是要查找的子字符串。string_pattern 可以是字符或二进制数据类型。string_pattern 不能是空字符串 ('')。 string_replacement 替换字符串。string_replacement 可以是字符或二进制数据类型。 返回类型 如果其中的一个输入参数数据类型为 nvarchar,则返回 nvarchar;否则 REPLACE 返回 varchar。 如果任何一个参数为 NULL,则返回 NULL。 上面都是官话,不好懂!翻成白话:REPLACE(String,from_str,to_str) 即:将String中所有出现的from_str替换为to_str。 一、准备实验环境 1.1 创建表: CREATE TABLE test_tb ( id int(10) unsigned NOT NULL auto_increment COMMENT '主键自增', name char(30) default NULL

SQL中的cast()函数

痴心易碎 提交于 2019-11-30 02:45:32
原文链接:https://www.cnblogs.com/accumulater/p/6149669.html 一、语法: CAST (expression AS data_type) 参数说明: expression :任何有效的SQServer表达式。 AS :用于分隔两个参数,在AS之前的是要处理的数据,在AS之后是要转换的数据类型。 data_type :目标系统所提供的数据类型,包括bigint和sql_variant,不能使用用户定义的数据类型。 使用CAST函数进行数据类型转换时,在下列情况下能够被接受: (1)两个表达式的数据类型完全相同。 (2)两个表达式可隐性转换。 (3)必须显式转换数据类型。 如果试图进行不可能的转换(例如,将含有字母的 char 表达式转换为 int 类型),SQServer 将显示一条错误信息。 如果转换时没有指定数据类型的长度,则SQServer自动提供长度为30。 二、注意事项: (1).CAST()函数的参数是一个表达式,它包括用AS关键字分隔的源值和目标数据类型。以下例子用于将文本字符串'12'转换为整型: SELECT CAST('12' AS int) (2).返回值是整型值12。如果试图将一个代表小数的字符串转换为整型值,又会出现什么情况呢? SELECT CAST('12.5' AS int) (3).CAST(

mysql字符串相关函数(并与sql server对比)

穿精又带淫゛_ 提交于 2019-11-30 02:41:38
https://blog.csdn.net/zhengxiuchen86/article/details/81220779 1.判断子串substr在字符串str中出现的位置 例子:查询']'在‘OP1010_GetData_Lim_MinMax[1]_Min’中第一次出现的位置 --mysqlselect LOCATE(']','OP1010_GetData_Lim_MinMax[1]_Min',27); select instr('OP1010_GetData_Lim_MinMax[1]_Min',']'); select position(']' in 'OP1010_GetData_Lim_MinMax[1]_Min'); 结果如下: --sqlserverselect CHARINDEX(']','OP1010_GetData_Lim_MinMax[1]_Min') as index_ ; 结果如下: 来源: https://www.cnblogs.com/luna-hehe/p/11547222.html

sql语句中判断空值的函数

我只是一个虾纸丫 提交于 2019-11-29 19:02:06
COALESCE()函数 主流数据库系统都支持COALESCE()函数,这个函数主要用来进行空值处理,其参数格式如下: COALESCE ( expression,value1,value2……,valuen) COALESCE()函数的第一个参数expression为待检测的表达式,而其后的参数个数不定。 COALESCE()函数将会返回包括expression在内的所有参数中的第一个非空表达式。 如果expression不为空值则返回expression;否则判断value1是否是空值, 如果value1不为空值则返回value1;否则判断value2是否是空值, 如果value2不为空值则返回value2;……以此类推, 如果所有的表达式都为空值,则返回NULL。 我们将使用COALESCE()函数完成下面的功能,返回人员的“重要日期”: 如果出生日期不为空则将出生日期做为“重要日期”,如果出生日期为空则判断注册日期是否为空,如果注册日期不为空则将注册日期做为“重要日期”,如果注册日期也为空则将“2008年8月8日”做为“重要日期”。实现此功能的SQL语句如下: MYSQL、MSSQLServer、DB2: SELECT FName,FBirthDay,FRegDay, COALESCE(FBirthDay,FRegDay, '2008-08-08') AS

sql中的函数

爱⌒轻易说出口 提交于 2019-11-29 14:02:29
sql中的函数 函数的定义跟java 差不多 ➢ 必须有返回值,单值函数主要是用来处理一个列中多行数据 哑表(dual ) ➢ 哑表的名字为dual, 这个表是虚拟的,不存在的,主要是用来构建或者验证select 语 法。这个表里面永远只有一条数据,那就是查询出来的数据 单值函数 ➢ 字符函数 ◆ LOWER 返回转换成小写的字符串 ◆ UPPER 转换为大写的字符串 ◆ INITCAP 首字母大写的字符串 ◆ CONCAT 连接字符串 ◆ SUBSTR 返回截取的字符串 substr(‘字符串’,从第几位开始截取,截取几位) ◆ LENGTH 返回字符串的长度 ◆ NVL ◆ Nvl(arg1,arg2) ➢ 如果参数为空,返回参数2 ◆ Nvl2(arg1,agr2,agr3) ➢ 如果参数为空,返回参数2 ,不为空返回参数3 ◆ Nullif(arg1,arg2) ➢ 如果参数1= 参数2 那么就返回null ➢ 数字函数 四舍五入 ROUND(要四舍五入的数字,保留到哪一位) TRUNC 和 round 的用法一样, 但是 trunc 只舍去不进位 取余 MOD(数字一,数字二) ➢ 日期函数 获取当前时间Sysdate,可以对日期进行加减,单位是天 ◆ MONTHS_BETWEEN(arg1,arg2) ➢ 俩个日期之间相差多少个月 【 单位是月 】 ◆ ADD

Sql中的left函数、right函数

社会主义新天地 提交于 2019-11-29 08:37:11
DB2中left()函数和right()函数对应oracle中的substr()函数 DB2 LEFT、RIGHT函数 语法: LEFT(ARG,LENGTH)、RIGHT(ARG,LENGTH) LEFT、RIGHT函数返回ARG最左边、右边的LENGTH个字符串,ARG可以是CHAR或BINARY STRING。 eg:SELECT LEFT(NAME,2),RIGHT(NAME,2) FROM T1 ORACLE substr()函数 substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符 substr('Hello World',2,4) //返回结果为 'ello' substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符 Oracle数据库中是没有left() 和right() 函数的,若想按照DB2中对应的函数去使用,自己新建两个function即可,方法如下 LEFT CREATE OR REPLACE FUNCTION "LEFT"

Java笔记(1)——sql常用函数

故事扮演 提交于 2019-11-29 07:05:16
一、字符函数 1.LENGTH--获取参数值的字节个数 SELECT LENGTH('LALA'); 结果:4 2.CONCAT--拼接字符串 SELECT CONCAT('I','am','OK'); 结果:IamOK 3.UPPER--将参数变为大写 SELECT UPPER('abc'); 结果:ABC 4.LOWER--将参数变为小写 SELECT LOWER('ABC'); 结果:abc 5.SUBSTR--索引从1开始,返回指定位置及其之后字符串 SELECT SUBSTR('ABC',2); 结果:BC SUBSTR--截取从指定索引处(第二个参数)开始,获取索引位置及其后指定字符长度的字符串 SELECT SUBSTR('ABC',1,2); 结果:AB 6.INSTR--返回第二个参数在第一个参数中第一次出现的位置,若没出现,则返回0 SELECT INSTR('ABCD','CD'); 结果:3 7.TRIM--去除首尾指定的字符,如果没指定,则表示去除空格 SELECT SUBSTR('#','###ASD##123####'); 结果:ASD##123 8.LPAD--用指定的字符实现左填充指定长度,同时也是结果的最终长度 SELECT LPAD('ABC',4,'#'); 结果:#ABC 9.RPAD--用指定的字符实现右填充指定长度