• SQL Server常用函数汇总


    1.day(date)  

     用途:获取日期是所在月的几号 

     参数:date是一个可以解析为 time、date、smalldatetime、datetime、datetime2 或 datetimeoffset 值的表达式、列表达式、用户定义的变量或字符串文字

     返回值:一个整数,该整数表示指定的 date 是该月份的哪一天

     

     eg: 

    day(getdate())  --获取当前时间是当前月份的哪一天

     扩展:

    select CONVERT(VARCHAR(10),DATEADD(dd,-day(getdate())+1,getdate()),120)   --获取当月的开始日期
    select CONVERT(VARCHAR(10),dateadd(dd,-day(getdate()),dateadd(m,1,getdate())),120)   --获取当月的结束日期

    2.DATEFIRST 

     用途:设置一周是以星期几开始

     语法:SET DATEFIRST {Num}

     参数:num是一个数值, 指示一周的第一天的一个整数可以是下列值之一。

    一周的第一天是

    1

    星期一

    2

    星期二

    3

    星期三

    4

    星期四

    5

    星期五

    6

    星期六

    7 (默认值,美国英语)

    星期日

     eg: 

     SET DATEFIRST 1 

     注释:

     (1)若要查看 SET DATEFIRST 的当前设置,请使用 @@DATEFIRST 函数。

        eg: 

    SELECT @@DATEFIRST 

     (2)SET DATEFIRST 的设置是在执行或运行时设置,而不是在分析时设置。

     (3)指定 SET DATEFIRST 对 DATEDIFF 不起作用。 DATEDIFF 始终使用星期日作为每周的第一天,以确保函数是确定性的。

    3.DATEPART()

     用途: DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等

     语法:DATEPART(datepart,date)

     参数:date 参数是合法的日期表达式。datepart 参数可以是下列的值:

    datepart缩写
    yy, yyyy
    季度 qq, q
    mm, m
    年中的日 dy, y
    dd, d
    wk, ww
    星期 dw, w
    小时 hh
    分钟 mi, n
    ss, s
    毫秒 ms
    微妙 mcs
    纳秒 ns

     eg:

    SET DATEFIRST 1       --设置一周的开始为星期一
    select datepart(w,getdate())

     扩展:

    SET DATEFIRST 1    --设置一周的开始为星期一
    select CONVERT(VARCHAR(10),getdate()-datepart(w,getdate())+1,120)   --当前日前所在周的开始日期
     select CONVERT(VARCHAR(10),getdate()-datepart(w,getdate())+7 ,120)   --当前日前所在周的结束日期

     4.SQL中的两种数据转换方式

    语法:CAST ( expression AS data_type [ ( length ) ] )
           CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

    参数:expression:任何有效的表达式
           data_type :目标数据类型。 这包括 xml、bigint 和 sql_variant。 不能使用别名数据类型。
           length:指定目标数据类型长度的可选整数。 默认值为 30。
           style:指定 CONVERT 函数如何转换 expression 的整数表达式。 如果 style为 NULL,则返回 NULL。 该范围是由 data_type 确定的。
    返回值:转换为 data_type 的 expression。
    注释:convert中data_type为日期时间类型时,style的集中类型如下表

    不带世纪数位 (yy) (1)

    带世纪数位 (yyyy)

    标准

    输入/输出 (3)

    -

    0 或1001、2)

    默认

    mon dd yyyy hh:miAM(或 PM)

    1

    101

    美国

    1 = mm/dd/yy

    101 = mm/dd/yyyy

    2

    102

    ANSI

    2 = yy.mm.dd

    102 = yyyy.mm.dd

    3

    103

    英国/法国

    3 = dd/mm/yy

    103 = dd/mm/yyyy

    4

    104

    德国

    4 = dd.mm.yy

    104 = dd.mm.yyyy

    5

    105

    意大利

    5 = dd-mm-yy

    105 = dd-mm-yyyy

    6

    106 (1)

    -

    6 = dd mon yy

    106 = dd mon yyyy

    7

    107 (1)

    -

    7 = Mon dd, yy

    107 = Mon dd, yyyy

    8

    108

    -

    hh:mi:ss

    -

    9 或1091、2)

    默认格式 + 毫秒

    mon dd yyyy hh:mi:ss:mmmAM(或 PM)

    10

    110

    美国

    10 = mm-dd-yy

    110 = mm-dd-yyyy

    11

    111

    日本

    11 = yy/mm/dd

    111 = yyyy/mm/dd

    12

    112

    ISO

    12 = yymmdd

    112 = yyyymmdd

    -

    13 或1131、2)

    欧洲默认格式 + 毫秒

    dd mon yyyy hh:mi:ss:mmm(24h)

    14

    114

    -

    hh:mi:ss:mmm(24h)

    -

    20 或 120 (2)

    ODBC 规范

    yyyy-mm-dd hh:mi:ss(24h)

    -

    21 或 121 (2)

    ODBC 规范(带毫秒)

    yyyy-mm-dd hh:mi:ss.mmm(24h)

    -

    126 (4)

    ISO8601

    yyyy-mm-ddThh:mi:ss.mmm(无空格)

    注意 注意

    毫秒 (mmm) 的值为 0 时,不显示毫秒值。 例如,值“2012-11-07T18:26:20.000”显示为“2012-11-07T18:26:20”。

    -

    127(6, 7)

    带时区 Z 的 ISO8601。

    yyyy-mm-ddThh:mi:ss.mmmZ(无空格)

    注意 注意

    毫秒 (mmm) 的值为 0 时,不显示毫秒值。 例如,值“2012-11-07T18:26:20.000”显示为“2012-11-07T18:26:20”。

    -

    130 (1,2)

    回历 (5)

    dd mon yyyy hh:mi:ss:mmmAM

    在此样式中,mon 表示完整月份名称的多标记回历 unicode 表示形式。 该值在 SSMS 的默认 US 安装中将不会正确呈现。

    -

    131 (2)

    回历 (5)

    dd/mm/yyyy hh:mi:ss:mmmAM


    eg:
    SELECT 
       GETDATE() AS UnconvertedDateTime,
       CAST(GETDATE() AS nvarchar(30)) AS UsingCast,
       CONVERT(nvarchar(30), GETDATE(), 121) AS 'ODBC 规范'  ,
       CONVERT(nvarchar(30), GETDATE(), 121) AS 'ODBC 规范(带毫秒'  ;
    GO  

     5.DATEDIFF()

    语法:DATEDIFF(datepart,startdate,enddate)

      参数startdate 和 enddate 参数是合法的日期表达式。

      注释:datepart 参数可以是下列的值:

    datepart缩写
    yy, yyyy
    季度 qq, q
    mm, m
    年中的日 dy, y
    dd, d
    wk, ww
    星期 dw, w
    小时 hh
    分钟 mi, n
    ss, s
    毫秒 ms
    微妙 mcs
    纳秒 ns




  • 相关阅读:
    Ubuntu18.04 环境下 解决VScode中空格长度减小的问题
    IPython notebook(Jupyter notebook) 设置密码
    IPython notebook(Jupyter notebook)指定IP和端口运行
    ubuntu系统下 vscode中如何指定conda环境
    《Bitcoin: A Peer-to-Peer Electronic Cash System》 中本聪写的比特币白皮书
    QT-vs各个版本的编译器号对应的vs版本号
    惯性导航的组成
    论文引用格式
    SCI正刊和特刊(专刊/增刊)的区别是什么?
    python glob.glob() 函数
  • 原文地址:https://www.cnblogs.com/stevenjson/p/4108542.html
Copyright © 2020-2023  润新知