• SQL 函数 (代码)


    -------------------------
    -     时间日期函数      -
    -------------------------

    日期函数与数学运算函数:
    --------------------------------------

    1.YEAR、MONTH 和DAY函数:

    提取日期值:
    SELECT 编号,姓名,性别,生日,
    YEAR(生日) AS '出生年份',
    MONTH(生日) AS '出生月份',
    DAY(生日) AS '出生日'
    FROM fun
    ORDER BY 编号
    --------------------------------------
    重新组合提取的日期值:
    SELECT 编号,姓名,性别,生日,
    CAST(YEAR(生日) AS CHAR(4))+'年'
    +CAST(MONTH(生日)AS CHAR(2))+'月'
    +CAST(DAY(生日)AS CHAR(2))+'日'
    AS '出生年月日'
    FROM fun
    ORDER BY 编号
    --------------------------------------
    2.DATEADD 函数的应用:
    将当前日期延迟若干天后的日期

    SELECT 编号,姓名,性别,生日,
    DATEADD(DAY,3,生日)AS '延迟三天为'
    FROM fun
    ORDER BY 编号
    --------------------------------------
    3.GETDATE 函数的应用:
    获得当前系统时间

    SELECT 编号,姓名,性别,生日,
    GETDATE() AS '实际日期'
    FROM fun
    ORDER BY 编号
    --------------------------------------
    4.DATEDIFF 函数的应用:
    获取两个时间的差值

    SELECT 货物编号,货物名称,发货日期,收货日期
    DATEDIFF (DAY, 发货日期,收货日期) AS '运输天数'
    FROM 货物信息表
    ORDER BY 编号
    --------------------------------------
    计算年龄:
    SELECT 编号,姓名,性别,生日,
    DATEDIFF(YEAR,生日,GETDATE()) AS '年龄'
    FROM fun
    ORDER BY 编号
    --------------------------------------

    -------------------------
    -   CONVERT 转换时间    -
    -------------------------

    style 的不同取值对应的日期、时间格式:
    ---------------------------------------------------------------------------
    Style(2位表示年份)| Style(4位表示年份) | 输入输出格式
    ---------------------------------------------------------------------------
    0                        | 100                      | mon dd yyyy hh:miAM(或PM)
    ---------------------------------------------------------------------------
    1                        | 101   美国             | mm/dd/yy
    ---------------------------------------------------------------------------
    2                        | 102   ANSI            | yy-mm-dd             
    ---------------------------------------------------------------------------
    3                        | 103   英法              | dd/mm/yy        
    ---------------------------------------------------------------------------
    4                        | 104   德国              | dd.mm.yy
    ---------------------------------------------------------------------------
    5                        | 105   意大利           | dd-mm-yy          
    ---------------------------------------------------------------------------
    6                        | 106                       | dd mon yy
    ---------------------------------------------------------------------------
    7                        | 107                       | mon dd,yy
    ---------------------------------------------------------------------------
    8                        | 108                       | hh:mm:ss
    ---------------------------------------------------------------------------
    9                        | 109                       | mon dd yyyy hh:mi:ss:mmmmAM(或PM)
    ---------------------------------------------------------------------------
    10                      | 110   美国              | mm-dd-yy
    ---------------------------------------------------------------------------
    11                      | 111   日本              | yy/mm/dd
    ---------------------------------------------------------------------------
    12                      | 112   ISO              | yymmdd
    ---------------------------------------------------------------------------
    13                      | 113   欧洲默认值     | dd mon yyyy hh:mi:ss:mmm(24小时制)
    ---------------------------------------------------------------------------
    14                      | 114                      | hh:mi:ss:mmm(24小时制)
    ---------------------------------------------------------------------------
    20                      | 120   ODBC 规范    | yyyy-mm-dd hh:mi:ss(24小时制)
    ---------------------------------------------------------------------------
    21                      | 121                      | yyyy-mm-dd hh:mi:ss:mmm(24小时制)
    ---------------------------------------------------------------------------
    ---------------------------------------------------------------------------

    获取当前系统时间:
    SELECT CONVERT(VARCHAR,GETDATE(),20)
    AS 'time'
    --------------------------------------
    定义日期的显示格式(一):
    SELECT 编号,姓名,性别,生日,
    CONVERT(varchar,生日,111) AS '日期格式'
    FROM fun
    --------------------------------------
    定义日期的显示格式(二):
    SELECT 编号,姓名,性别,生日,
    CONVERT(char,生日,4) AS '日期格式'
    FROM fun
    --------------------------------------
    定义日期的显示格式(三):
    SELECT 编号,姓名,性别,生日,
    CONVERT(char,生日,12) AS '日期格式'
    FROM fun
    --------------------------------------

    -------------------------
    -      数据运算函数     -
    -------------------------

    常用的数据运算函数:
    ------------------------------------------------
    函数表达式     |  函数返回值
    ------------------------------------------------
    ABS()           |  表达式的绝对值
    ------------------------------------------------
    CEILING()     |  大于等于表达式的最小值
    ------------------------------------------------
    FLOOR()        |  小于等于表达式的最大值
    ------------------------------------------------
    ROUND(,INT) |  以INT位精度的四舍五入的值
    ------------------------------------------------
    SIN()             |  角的正弦值
    ------------------------------------------------
    ASIN()           |  以弧度表示的正弦的角
    ------------------------------------------------
    COS()            |  角的余弦值
    ------------------------------------------------
    ACOS()          |  以弧度表示的余弦的脚
    ------------------------------------------------
    TAN()            |  角的正切值
    ------------------------------------------------
    ATAN()          |  以弧度表示的正切的角
    ------------------------------------------------
    EXP()            |  表达式的值数值
    ------------------------------------------------
    SQRT()          |  表达式的平方根
    ------------------------------------------------
    SIGN()          |  参数的正负号,1(正);0,-1(负)
    ------------------------------------------------
    PI()               |  π(3.1415926)
    ------------------------------------------------
    RAND()          |  0--1之间的随机浮点数
    ------------------------------------------------

    获得表达式的绝对值:
    SELECT ABS(-55)
    AS '绝对值'
    --------------------------------------
    使用ROUND 函数:
    SELECT 货物编号,货物名称,数量,ROUND(单价,0) AS '货物单价',
    数量*单价 AS 总价
    FROM 货物信息表
    ORDER BY 编号
    --------------------------------------
    使用CEILING函数和FLOOR函数:
    SELECT 货物编号,货物名称,数量,单价,
    CELING(单价) AS '价格浮动上限',
    FLOOR(单价) AS '价格浮动下限'
    FROM 货物信息表
    ORDER BY 编号
    --------------------------------------
    使用正弦与余弦相关函数:
    SELECT SIN(30) AS 'SIN(30)',
    ASIN(0.5) AS 'ASIN(0.5)',
    COS(60) AS 'COS(0.5)',
    ACOS(0.45) AS 'ACOS(0.45)'
    --------------------------------------
    获得对数值:
    SELECT LOG(9) AS 求对数值
    --------------------------------------
    SQRT函数与RAND函数的应用:
    SELECT SQRT(9) AS ‘9的平方根’
    RAND() AS '得到一个随机数'
    --------------------------------------
    PI 函数的使用:
    SELECT PI() AS PI的值
    --------------------------------------

    *****************
    *      字符串函数       *
    *****************
    -------------------------------------------------------------
    常用的字符串处理函数及其功能:
    -------------------------------------------------------------
    函数表达式                 |     参数及功能
    ------------------------|------------------------------------
    ASCII(char)              | 返回字符串表达式最左端字符的ASCII值
    ------------------------|------------------------------------
    CHAR(int)                 | 将ASCII值转换为字符
    ------------------------|------------------------------------
    LOWER(char)            | 将表达式中的字符串全部转换为小写
    ------------------------|------------------------------------
    UPPER(char)             | 将表达式中的字符串全部转换为大写
    ------------------------|------------------------------------
    LTRIM(char)             | 去掉字符串前端的空格
    ------------------------|------------------------------------
    RTRIM(char)             | 去掉字符串末端的空格
    ------------------------|------------------------------------
    LEN(char)                 | 取字符串的长度
    ------------------------|------------------------------------
    LEFT(char,int)           | 截取部分字符串,截取的子串是从字符
                                   | 串最左起,到int个字符的部分
    ------------------------|------------------------------------
    RIGHT(char,int)        | 截取部分字符串,截取的子串是从字符
                                   | 串第int个字符起,到最后一个字符
    ------------------------|------------------------------------
    SUBSTRING(,start,length)| 返回部分字符串,返回的子串是从字符
                                          | 串左边第start个字符起,length个字符
    ------------------------|------------------------------------
    CHARINDEX(substring,_)  | 返回字符串中某个指定的子串出现的开始
                                          | 位置。substring时所要查找的字符表达
                                          | 式,_ 可以是字符串或列名表达式
    ------------------------|------------------------------------
    REPLICATE(char,int)  | 返回一个重复char指定次数的字符串
    ------------------------|------------------------------------
    REVERSE(char)         | 颠倒指定字符串字符的排列顺序
    ------------------------|------------------------------------
    REPLACE(char1,char2,    | 表示char3替换char1中的char2
            char3)                 |
    -------------------------------------------------------------

    UPPER 函数的使用:
    SELECT TOP 10 供应商编号,UPPER(公司名称) AS 'CompanyName',
    UPPER(商品名称) AS 'ContactName'
    FROM 供应信息表
    --------------------------------------
    LOWER 函数的使用:
    SELECT TOP 10 供应商编号,LOWER(公司名称) AS 'CompanyName',
    LOWER(商品名称) AS 'ContactName'
    FROM 供应信息表
    --------------------------------------
    使用RTRIM 函数去除字符串空格:
    SELECT TOP 10 供应商编号,RTRIM(公司名称)+商品名称 AS
    'CnmpanyNameAndContactName',
    FROM 供应信息表
    --------------------------------------
    去掉字符串前端空格:
    SELECT 编号,姓名,性别,电话,地址
    FROM 学生信息表
    ORDER BY 编号
    --------------------------------------
    取字符串长度的函数:
    SELECT TOP 10 供应商编号,LEN(公司名称) AS '公司名称长度',
    LEN(商品名称) AS '商品名称长度'
    FROM 供应信息表
    --------------------------------------
    LEFT 函数使用:
    SELECT 编号,姓名,性别,电话,地址
    FROM 学生信息表
    WHERE LEFT(地址,3)='吉林省'
    --------------------------------------
    SUBSTRING 函数的使用:
    SELECT 编号,姓名,性别,电话,SUBSTRING(地址,4,2) AS '所在市'
    FROM 学生信息表
    --------------------------------------
    使用REVERSE 函数颠倒字符串的排列顺序:
    SELECT TOP 10 供应商编号,公司名称,商品名称,
    REVERSE(公司名称) AS '颠倒后的公司名称'
    FROM 供应信息表
    --------------------------------------
    使用REPLACE 函数替换字符串:(将大连换位长春)
    SELECT 编号,姓名,性别,电话,地址,
    REPLACE(地址,'大连','长春') AS '新地址'
    FROM 学生信息表
    ORDER BY 编号
    --------------------------------------

    *****************
    *        聚合函数       *
    *****************

    ---------------------------------------
    常见的聚合函数:
    ---------------------------------------
    聚合函数      |      结果
    -------------|-------------------------
    SUM()        |所有值的总和
    -------------|-------------------------
    MAX()        |所有值中的最大值
    -------------|-------------------------
    MIN()        |所有之中的最小值
    -------------|-------------------------
    AVG()        |所有值的平均值
    -------------|-------------------------
    GOUNT()    |行数
    ---------------------------------------

    SUM 函数的应用:
    SELECT SUM(单价) AS '单价总和'
    FROM 货物信息表
    --------------------------------------
    使用SUM 函数求多列数据的总和:
    SELECT SUM(数量) AS '数量总和',
    SUM(单价) AS '单价总和',
    SUM(数量*单价) AS '货物总价'
    FROM 货物信息表
    --------------------------------------
    MAX 函数的应用:
    SELECTMAX(数量) AS '货物数量的最大值',
    MAX(单价) AS '单价的最大值'
    FROM 货物信息表
    --------------------------------------
    MAX 函数用于时间类的数据:
    SELECT MAX(生日) AS '出生日期'
    FROM 学生信息表
    --------------------------------------
    MAX 函数用于字符类型的数据:
    SELECT MAX(姓名) AS '学生名称'
    FROM 学生信息表
    --------------------------------------
    MIN 函数的应用:
    SELECT MIN(数量) AS '数量的最小值',
    MIN(单价) AS '单价的最小值'
    FROM 货物信息表
    --------------------------------------
    MIN 函数用于事件类型的数据:
    SELECT MIN(生日) AS '出生日期'
    FROM 学生信息表
    --------------------------------------
    MIN 函数用于字符类型的数据:
    SELECT MIN(姓名) AS '学生姓名'
    FROM 学生信息表
    --------------------------------------
    AVG 函数的应用:
    SELECT AVG(数量) AS '货物数量的平均值'
    FROM 货物信息表
    --------------------------------------
    获得满足一定条件数据的平均值:
    SELECT AVG(DATEDIFF(YEAR,生日,GETDATE())) AS '平均年龄'
    FROM 学生信息表
    WHERE 姓名 LIKE '刘%'
    --------------------------------------
    COUNT 函数的应用:
    SELECT COUNT(*) AS '记录总数'
    FROM 学生信息表
    --------------------------------------
    获取多列中所有记录的行数:
    SELECT COUNT(姓名) AS '姓名列行数总数',
    COUNT(电话) AS '电话列行数总数',
    COUNT(地址) AS '地址列行数总数'
    FROM 学生信息表
    --------------------------------------
    获得满足一定条件数据的记录总数:
    SELECT COUNT(*) AS '记录总数'
    FROM 学生信息表
    WHERE 姓名 LIKE '刘%'
    --------------------------------------
    聚合函数的组合使用:
    SELECT MAX(DATEDIFF(YEAR,生日,GETDATE())) AS '最大年龄',
    MIN(DATEDIFF(YEAR,生日,GETDATE())) AS '最小年龄',
    AVG(DATEDIFF(YEAR,生日,GETDATE())) AS '平均年龄',
    COUNT(*) AS '记录总数'
    FROM 学生信息表

  • 相关阅读:
    and &&区别
    redis服务意外停止
    shell基础之bash
    vbox的桥接网络
    apache安装及相应配置
    https服务器配置部署
    nginx + php + mysql安装、配置、自启动+redis扩展
    VirtualBox安装linux
    本地检出远程分支
    linux下的crontab安装及简单使用
  • 原文地址:https://www.cnblogs.com/gaorui/p/2134683.html
Copyright © 2020-2023  润新知