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’

     

  • 相关阅读:
    MySQL 常见问题
    Gym 101652P:Fear Factoring 数论
    万网域名查询接口(API)的说明
    在ashx页面获取Session值
    asp.net 操作xml
    用SQL进行嵌套查询
    在IE下 javascript比较两个字符串(包括中文汉字)是否相等
    asp.net中protected/private/public的用法与区别
    第一个
    解决IDEA Unable to save settings: Failed to save settings. Please restart IntelliJ IDEA问题的一种方法。
  • 原文地址:https://www.cnblogs.com/waitingAlone/p/5112098.html
Copyright © 2011-2022 走看看