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’
SqlServer 笔记一 某表中每个月的产品数量(DATENAME() 与 DATEPART()、YEAR())的更多相关文章
- 【Sqlserver】修改数据库表中的数据:对缺失的数据根据已有的数据进行修补
1 --查询时间范围内的数据 select * from dbo.point where wtime >'2014-05-01 23:59:59' and wtime< '2014-05- ...
- SQL笔记----在一个关系表中操作列
使用alter关键字,可以为一个表添加新的列. 比如: 给Persons的表中添加一列,名字为Birthday,类型是date. ALTER TABLE Persons ADD Birthday da ...
- mssql sqlserver 禁止删除数据表中指定行数据(转自:http://www.maomao365.com/?p=5323)
转自:http://www.maomao365.com/?p=5323 摘要:下文主要讲述,如何禁止删除数据表中指定行数据 最近收到用户一个需求,禁止所有人删除”表A”中,ID 为1.2.3.4.5的 ...
- MySQL/MariaDB学习笔记——mysql.user表中存在多个root用户问题理解
mysql.user表中存在多个root用户问题 问题描述:使用 SELECT host,user FROM mysql.user 发现mysql.user表中存在三个root用户,如下 持着对中几个 ...
- C#读取Visual FoxPro(*.dbf)数据并使用SqlBulkCopy插入到SqlServer 2008 R2数据表中
公司数据库从32位的SqlServer 2005升级到64位的SqlServer 2008 R2后,无法再像原来通过Link Server连接VFP同步数据,因此考虑用代码程序从VFP数据库中读取所需 ...
- 分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- SQLServer 命令批量删除数据库中指定表(游标循环删除)
DECLARE @tablename VARCHAR(30),@sql VARCHAR(500)DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ON ...
- (转)分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间)
分享一个SQLSERVER脚本(计算数据库中各个表的数据量和每行记录所占用空间) 很多时候我们都需要计算数据库中各个表的数据量和每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tab ...
- 用SqlBulkCopy批量插入数据到SqlServer数据库表中
首先创建一个数据库连接类:SQLHelper using System; using System.Collections.Generic; using System.Linq; using Syst ...
随机推荐
- 【分享】SQL中的注入漏洞
例:假设一个账户密码的输入在数据库中是这样进行判断的. ' ) AS PWDCORRECT FROM T_USER WHERE FUSER= 'GUEST' 如果输入: ') AS PWDCORREC ...
- angularjs之ng-bind和ng-model
1.为什么其他标签可以用ng-bind ,而input标签要用ng-model 这就是所谓的数据双向绑定,input是用于用户输入的,数据要从View传输到Controller中,而{{}}和ng-b ...
- request response
request 和 response 这两个对象是出现在service方法中.service方法是用来接收请求处理请求,完成响应的. 接受请求指的就是request对象 完成响应指的就 ...
- connect 链接失败: 查找不到 signal
提示错误是: signal_index < 0 ;; ---- 故 connect返回false; 消除 connect 信号 ...
- UIImage加载本地图片的两种方式
UIImage加载图片方式一般有两种: (1)imagedNamed初始化:默认加载图片成功后会内存中缓存图片,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象.如果缓存中没有找到相应的图片 ...
- 多个DataSet数据合并
DataSet ds = myIAppSet.GetHomeHottestList(siteID, , time); ].Rows.Count > ) { ds.Merge(ds1); } Me ...
- 浅谈HTTP事务的一个过程
一个腾讯在职的朋友问道,当我们在浏览器的地址栏输入 www.baidu.com ,然后回车,这一瞬间页面发生了什么?下面以谷歌浏览器一一解释. 一.域名解析 首先Chrome浏览器会解析www.bai ...
- UWP 禁止Pivot swip 手势
以前想要禁止内置的手势动作,看了一下网上是设置 IsLocked="True". 但是拿到UWP上来,靠,设置了之后header只显示当前的那个header.这样的设计真是丑爆了. ...
- 【转】Linux下进程/程序网络带宽占用情况查看工具 -- NetHogs
http://www.cnblogs.com/carbon3/p/5930803.html 之前VPS侦探曾经介绍过流量带宽相关的工具如:iftop.vnstat,这几个都是统计和监控网卡流量的.但是 ...
- Java整型与字符串相互转换
>>>>>>>>>>>>>>>>>>>> 1如何将字串 String 转换成整数 ...