zoukankan      html  css  js  c++  java
  • SqlServer 笔记一 某表中每个月的产品数量(DATENAME() 与 DATEPART()、YEAR())

    1、使用 DATENAME() 函数 

    SELECT DATENAME(yyyy, [columnName]) + '/' + DATENAME(mm, [columnName]) AS monthDate,COUNT(*) AS number FROM [tableName]
    GROUP BY DATENAME(yyyy, [columnName]) ,DATENAME(mm, [columnName])
    ORDER BY monthDate DESC

    结果如下:

    DATENAME ( datepart , date ) 返回值是一个 nvarchar 值。

    参考文档: DATANAME的使用

    2、使用 year() month() 函数:

    SELECT cast(year([columnName]) as varchar(8))+'/'+cast(month([columnName]) as varchar(8)) AS monthDate,COUNT(*) AS number FROM [tableName]
    GROUP BY year([columnName]),month([columnName])
    ORDER BY convert(datetime,cast(year([columnName]) as varchar(8))+' - '+cast(month([columnName]) as varchar(8)) + '-01') DESC

    结果如下:

    YEAR ( date ) 返回的是一个 INT 值 其与 DATEPART ( year , date ) 返回的值一样。

    MONTH ( date ) 返回的是一个 INT 值 其与 DATEPART ( month , date ) 返回的值一样。

    参考文档:DATEPART的使用      YEAR的使用

    总结:

    1、在目前的数据库中使用第一种方式更为简便。但是需要注意的是在不同数据库中第一种方式使用的 DATENAME ( datepart , date ) 函数返回的值是有区别的:

    以月份为例  DATENAME ( month , ‘2016/1/8’ ) 在有的数据库中返回的是 ‘01’,但是有的数据库中返回的值就是 ‘January’  这个是与数据库的设置有关的,可以用以下语句查询: SELECT @@Language  我的数据库返回的是 ‘简体中文’。

    示例:

    SET LANGUAGE 'Italian'
    SELECT DATENAME(month, '2016-01-08') AS 'Month Name'
    
    SET LANGUAGE 'English'
    SELECT DATENAME(month, '2016-01-08') AS 'Month Name'
    
    SET LANGUAGE 'Simplified Chinese'
    SELECT DATENAME(month, '2016-01-08') AS 'Month Name'

    运行结果:

    所以如果不知道数据库是何种语言,使用第二种方法是通用的选择。

    2、DATENAME() 函数与 DATEPART() 函数在大部分的时候返回的值也是一样的,但还是有所区别:

    以月份那个为例,即使返回数字,DATENAME() 返回的依然是 ‘01’,而 DATEPART() 返回的是 ‘1’

    以周几(weekDay)为例,SELECT DATENAME(WEEKDAY,'2016-01-08'),DATEPART(WEEKDAY,'2016-01-08') 返回的是 ‘星期五’,‘6’

     

  • 相关阅读:
    C++笔记(2018/2/6)
    2017级面向对象程序设计寒假作业1
    谁是你的潜在朋友
    A1095 Cars on Campus (30)(30 分)
    A1083 List Grades (25)(25 分)
    A1075 PAT Judge (25)(25 分)
    A1012 The Best Rank (25)(25 分)
    1009 说反话 (20)(20 分)
    A1055 The World's Richest(25 分)
    A1025 PAT Ranking (25)(25 分)
  • 原文地址:https://www.cnblogs.com/waitingAlone/p/5112098.html
Copyright © 2011-2022 走看看