zoukankan      html  css  js  c++  java
  • SQL 数据库函数

    字符串函数

    lower(字符串表达式) | select lower('ABCDEF')返回 abcdef | 返回大写字符数据转换为小写的字符表达式。
    
    
    upper(字符串表达式) | select upper('abcdef')返回 ABCDEF | 返回小写字符数据转换为大写的字符表达式。
    
    
    ltrim(字符串表达式) | select ltrim('    abc')返回 abc | 返回删除了前导空格之后的字符表达式。
    
    
    rtrim(字符串表达式) | select rtrim('abc    ')返回 abc | 返回删除了尾随空格之后的字符表达式。
    
    
    left(字符串表达式,整数表达式) | select left('abcdefg',2) 返回 ab | 返回字符串中从左边开始指定个数的字符。
    
    
    right(字符串表达式,整数表达式) | select right('abcdefg',2) 返回fg | 返回字符串中从右边开始指定个数的字符。
    
    
    substring(字符串表达式,开始位置,长度) | select substring('abcdef',2,2)返回bc | 返回子字符串
    
    
    len(字符串表达式) | select len('abcdefg')返回 7  select len('abcdefg     ') 返回7 | 返回指定字符串表达式的字符数,其中不包含尾随空格。
    
    
    difference(字符串表达式1,字符串表达式2) | select difference('Green','Greene')返回4 |
        返回一个0到4的整数值,指示两个字符表达式的之间的相似程度。0 表示几乎不同或完全不同,4表示几乎相同或完全相同。注意相似并不代表相等
    
    
    space(整数表达式) | select 'a'+space(2)+'b' 返回 a  b | 返回由指定数目的空格组成的字符串
    
    str(float型小数[,总长度[,小数点后保留的位数]])|
        eg:
        select str(123.451)返回   123(123前面有空格)
        select str(123.451,3)返回123
        select str(123.451,7,3)返回123.451
        select str(123.451,7,1)返回123.5
        select str(123.451,5,3)返回123.5
        select str(123.651,2)返回**    
        返回由数字转换成的字符串。返回字符数不到总长度的前面补空格,超过总长度的截断小数位。如果需要截断整数位则返回**。
        注意在截断时遵循四舍五入
        总长度。它包括小数点、符号、数字以及空格。默认值为 10。
        小数点后最多保留16位。默认不保留小数点后面的数字
    字符串函数

    日期时间函数

    dateadd(日期部分,数字,日期) | select dateadd(year,45,'1990-12-11') //2035-12-11 00:00:00.00 | 返回给指定日期加上一个时间间隔后的新的日期值。

    datediff(日期部分,开始日期,结束日期) | select datediff(yy,'1990-12-11','2008-9-10')//18 | 返回两个指定日期的指定日期部分的差的整数值。

    datepart(日期部分,日期) | select datepart(mm,'2007-12-11')//12 | 返回表示指定日期的指定日期部分的整数。

    getdate() | select getdate()\2015-06-28 18:57:24.153 | 返回当前系统日期和时间。

    getutcdate() | select getutcdate()\2015-06-28 18:57:24.153 | 返回表示当前的 UTC(世界标准时间)时间。即格林尼治时间(GMT)

    dateadd、datediff、datename、datepart的日期部分含义

    日期部分  含义    缩写
    year yy,yyyy
    quarter q,qq
    month m,mm
    dayofyear dy,y
    day dd,d
    week 星期 wk,ww
    hour 小时 hh
    minute 分钟 mi,n
    second s,ss
    millisecond 毫秒 ms
    ---恢复内容开始---
    
    今天的所有数据: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())=0
    
    本年的所有数据:select * from 表名 where DateDiff(yy,datetime类型字段,getdate())=0
    
     
    
    查询今天是今年的第几天: select datepart(dayofyear,getDate())
    
    查询今天是本月的第几天:1. select datepart(dd, getDate())  
    
                                                    2.select day(getDate())
    
    查询本周的星期一日期是多少 (注意:指定日期不能是周日,如果是周日会计算到下周一去。所以如果是周日要减一天)
    SELECT DATEADD(wk,DATEDIFF(wk,0,getdate()),0)
    
     
    
    查询昨天日期:select convert(char,dateadd(DD,-1,getdate()),111)  //111是样式号,(100-114)
    
     
    
    查询本月第一天日期:Select DATEADD(mm, DATEDIFF(mm,0,getdate()), 0) as firstday
    
    查询本月最后一天日期:Select dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,getdate())+1, 0)) as lastday      //修改-3的值会有相应的变化
    
     
    
    本月有多少天:select datepart(dd,dateadd(dd,-1,dateadd(mm,1,cast((cast(year(getdate()) as varchar)+'-'+cast(month(getdate()) as varchar)+'-01' ) as datetime ))))
    
     
    
    求两个时间段相差几天:select datediff(day,'2016/5/17','2016/8/20') as daysum
    
    在指定的日期上±N天:select convert(char,dateadd(dd,1,'2016/8/20'),111) as riqi    //输出2016/8/21
    
    在指定的日期上±N分钟:select dateadd(mi,-15,getdate())  //查询当前时间15分钟之前的日期
    SQL语句来查询今天、昨天、7天内、30天的数据

    数学函数

    round(数值表达式[,长度[,操作方式]])
    select round(1236.555,2)\1236.560  select round(1236.555,2,1)\1236.550
    
    select round(1236.555,0)\1237.000
    
    select round(1236.555,-1)\1240.000  select round(1236.555,-1,1)\1230.000
    
    select round(1236.555,-4)\0.000   select round(5236.555,-4)\出现错误 select round(5236.555,-4,1)\0.000
    
    返回一个数值,舍入到指定的长度。注意返回的数值和原数值的总位数没有变化。
    
    长度:舍入精度。如果长度为正数,则将数值舍入到长度指定的小数位数。如果长度为负数,则将数值小数点左边部分舍入到长度指定的长度。注意如果长度为负数,并且大于小数点前的数字个数,则将返回 0。如果长度为负数并且等于小数点前的数字个数且操作方式为四舍五入时,最前面的一位小于5返回0,大于等于5会导致错误出现,如果操作方法不是四舍五入时则不会出现错误,返回结果一律为0。
    
    操作方式:默认为0遵循四舍五入,指定其他整数值则直接截断。
    
    ceiling(数值表达式) | select ceiling(5.44)\6  select ceiling(-8.44)\-8 | 返回大于或等于指定数值表达式的最小整数。
    
    floor(数值表达式) | select floor(5.44)\5  select floor(-8.44)\-9 | 返回小于或等于指定数值表达式的最大整数。
    
    power(数值表达式1,数值表达式2) | select power(5,2)返回25 | 返回数值表达式1的数值表达式2次幂
    
    sqrt(数值表达式) | select sqrt(25)\5 | 返回数值表达式的平方根
    
    abs(数值表达式) | select abs(-23.4)\23.4 | 返回指定数值表达式的绝对值(正值)
    
    pi() |  select pi()\3.14159265358979 | 返回π的值
    数学函数

    数据类型转换函数

    convert(数据类型[(长度)],表达式[,样式])
    select convert(nvarchar,123) \123
    select  convert(nvarchar ,getdate())\04 28 2015 10:21PM
    select  convert(nvarchar ,getdate(),120)\2009-04-28 12:22:2
    将一种数据类型的表达式显式转换为另一种数据类型的表达式。
    长度:如果数据类型允许设置长度,可以设置长度,例如varchar(10)
    样式:用于将日期类型数据转换为字符数据类型的日期格式的样式


    cast(表达式 as 数据类型[(长度)])
    select cast(123 as nvarchar)\123
    select N'年龄:'+cast(23 as nvarchar)\年龄:23
    将一种数据类型的表达式显式转换为另一种数据类型的表达式。

    CONVERT是专对SQL Server使用的,使日期与时间值,小数之间转换具有更宽的灵活性
    CAST是两种功能中更具ANSI标准的功能,即虽然更具便携性(比如,使用CAST的函数能更容易的被其它数据库软件使用),但功能相对弱一些。

    Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
    Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
    Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
    Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
    Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
    Select CONVERT(varchar(100), GETDATE(), 5): 16-05-06
    Select CONVERT(varchar(100), GETDATE(), 6): 16 05 06
    Select CONVERT(varchar(100), GETDATE(), 7): 05 16, 06
    Select CONVERT(varchar(100), GETDATE(), 8): 10:57:46
    Select CONVERT(varchar(100), GETDATE(), 9): 05 16 2006 10:57:46:827AM
    Select CONVERT(varchar(100), GETDATE(), 10): 05-16-06
    Select CONVERT(varchar(100), GETDATE(), 11): 06/05/16
    Select CONVERT(varchar(100), GETDATE(), 12): 060516
    Select CONVERT(varchar(100), GETDATE(), 13): 16 05 2006 10:57:46:937
    Select CONVERT(varchar(100), GETDATE(), 14): 10:57:46:967
    Select CONVERT(varchar(100), GETDATE(), 20): 2006-05-16 10:57:47
    Select CONVERT(varchar(100), GETDATE(), 21): 2006-05-16 10:57:47.157
    Select CONVERT(varchar(100), GETDATE(), 22): 05/16/06 10:57:47 AM
    Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16
    Select CONVERT(varchar(100), GETDATE(), 24): 10:57:47
    Select CONVERT(varchar(100), GETDATE(), 25): 2006-05-16 10:57:47.250
    Select CONVERT(varchar(100), GETDATE(), 100): 05 16 2006 10:57AM
    Select CONVERT(varchar(100), GETDATE(), 101): 05/16/2006
    Select CONVERT(varchar(100), GETDATE(), 102): 2006.05.16
    Select CONVERT(varchar(100), GETDATE(), 103): 16/05/2006
    Select CONVERT(varchar(100), GETDATE(), 104): 16.05.2006
    Select CONVERT(varchar(100), GETDATE(), 105): 16-05-2006
    Select CONVERT(varchar(100), GETDATE(), 106): 16 05 2006
    Select CONVERT(varchar(100), GETDATE(), 107): 05 16, 2006
    Select CONVERT(varchar(100), GETDATE(), 108): 10:57:49
    Select CONVERT(varchar(100), GETDATE(), 109): 05 16 2006 10:57:49:437AM
    Select CONVERT(varchar(100), GETDATE(), 110): 05-16-2006
    Select CONVERT(varchar(100), GETDATE(), 111): 2006/05/16
    Select CONVERT(varchar(100), GETDATE(), 112): 20060516
    Select CONVERT(varchar(100), GETDATE(), 113): 16 05 2006 10:57:49:513
    Select CONVERT(varchar(100), GETDATE(), 114): 10:57:49:547
    Select CONVERT(varchar(100), GETDATE(), 120): 2006-05-16 10:57:49
    Select CONVERT(varchar(100), GETDATE(), 121): 2006-05-16 10:57:49.700
    Select CONVERT(varchar(100), GETDATE(), 126): 2006-05-16T10:57:49.827
    Select CONVERT(varchar(100), GETDATE(), 130): 18 ???? ?????? 1427 10:57:49:907AM
    Select CONVERT(varchar(100), GETDATE(), 131): 18/04/1427 10:57:49:920AM
    
    时间格式转换
    时间转换格式

    引用:

    http://www.cnblogs.com/ATree/archive/2011/03/08/SQL_Server_2005_substring_convert.html

  • 相关阅读:
    基于51单片机数码管显示经ADC0808转化1K电位器分压5V模拟量为数字量的项目工程
    基于51单片机数码管显示经ADC0808转化1K电位器分压5V模拟量为0V-5V数字量的项目工程
    浅谈移动端过长文本溢出显示省略号的实现方案
    浅谈自动化测试
    Tomcat 优雅关闭之路
    InnoDB 事务加锁分析
    Tomcat 9.0.26 高并发场景下DeadLock问题排查与修复
    Kotlin 协程真的比 Java 线程更高效吗?
    Spark 数据倾斜及其解决方案
    大数据平台架构设计探究
  • 原文地址:https://www.cnblogs.com/eye-like/p/4624196.html
Copyright © 2011-2022 走看看