博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SqlServer 笔记一 某表中每个月的产品数量(DATENAME() 与 DATEPART()、YEAR())
阅读量:4981 次
发布时间:2019-06-12

本文共 1544 字,大约阅读时间需要 5 分钟。

 

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 值。

参考文档: 

 

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 ) 返回的值一样。

参考文档:      

 

 

总结:

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’

 

 

 

 

转载于:https://www.cnblogs.com/waitingAlone/p/5112098.html

你可能感兴趣的文章
win7下无法安装QTP-少了Microsoft Visual c++2005 sp1运行时组件
查看>>
iPhone开发笔记[10/50]:调用initWithNibName方法时不能写上.xib
查看>>
Palindrome subsequence(区间dp+容斥)
查看>>
三、WebView网络显示控件
查看>>
ASP.NET MVC 给ViewBag赋值Html字符转义问题
查看>>
Q3:如何做到服务的独立部署
查看>>
WP8中使用async/await扩展HttpWebRequest
查看>>
排序算法
查看>>
(转)Oracle、SQL Server下MD5+Base64密码加密实现
查看>>
Tomcat7配置数据源
查看>>
linux的chmod与chown命令详解
查看>>
SQL Server的复合索引适当用法
查看>>
[转]俞敏洪:我和马云就差了8个字... [来自: news.mbalib.com]
查看>>
intersection &union&zip
查看>>
Spark算子
查看>>
纯JS的ajax实例
查看>>
网站建设常识
查看>>
hashlib加密操作模块
查看>>
C#里的运算符和表达式
查看>>
解决挂载(mount:wrong fs type,bad option,bad superblock on )错误
查看>>