• 一句SQL语句的几点解释


    select

    DueTime=case [PayMentTypeChildSNO] when '0' then (case ProductTypeSNO when '9' then CONVERT(varchar(20),DATEADD(day,30,ProductPurchase.CreateTime),120)/** 整套电视剧**/ else CONVERT(varchar(20),DATEADD(day,3,ProductPurchase.CreateTime),120)/**电影记录片**/ end)  else CONVERT(varchar(20),DATEADD(day,3,ProductPurchase.CreateTime),120)/** 电视剧单集**/  endfrom ProductPurchase

     

    对于上面的一段SQL语句,其中有几个关键字的用法描述如下:

    1、  DATEADD

    通过向指定日期添加间隔,返回新的 datetime 值。语法:DATEADD ( datepart , number, date )

    举例:SELECT DATEADD(day, 21, pubdate) AS timeframe,在pubdate上增加21天。

    2、  Case中嵌套一个Case

    Case... when * then (/**嵌套一个Case**/ Case... when * then * else * end) else * end

    3、  CONVERT

    将某种数据类型的表达式显式转换为另一种数据类型。语法:

    CONVERT (data_type[(length)], expression [, style])

    其中style

    日期格式样式,借以将 datetime smalldatetime 数据转换为字符数据(ncharnvarcharcharvarcharnchar nvarchar 数据类型);或者字符串格式样式,借以将 floatrealmoney smallmoney 数据转换为字符数据(ncharnvarcharcharvarcharnchar nvarchar 数据类型)。

    在表中,左侧的两列表示将 datetime smalldatetime 转换为字符数据的 style 值。给 style 值加 100,可获得包括世纪数位的四位年份 (yyyy)。(见联机帮助中的图)

    举例:CONVERT(varchar(20),DATEADD(day,3,CreateTime),101)

    转换前:2006-12-18 14:28:48.000

    转换后:12/21/2006(美国标准时间)

     

    详细信息搜索《SQL联机帮助》

  • 相关阅读:
    洛谷P1258小车问题
    洛谷P1028 数的计算
    P1980 计数问题
    洛谷P1907口算练习题
    2018icpc沈阳-K.Let the Flames Begin (约瑟夫环问题)
    Codeforces Round #585 (Div. 2) B. The Number of Products
    字符串部分模板总结
    CF-1209D Cow and Snacks (并查集,图)
    Codeforces Round #584 (div.1+div.2)(补题)
    HDU
  • 原文地址:https://www.cnblogs.com/xp/p/1005595.html
Copyright © 2020-2023  润新知