SQL中随意的操作日期

有时候会需要操作sql的日期时间字段,往往需要的是其中的一部分,而不是整体,这里总结了一些方法以便随意的获取sql中的日期的字段

Convert(a,s,d)  a:转换后的长度   s:要转换的字段或者获得日期时间的方法   d:转换的格式

种类太多,只列出常用的几个

 

之所以用100,是为了打印出整体的样式,然后改变长度用来截取指定的字符

SELECT CONVERT(varchar(100), GETDATE(), 20)             2011-05-09 09:13:14

SELECT CONVERT(varchar(100), GETDATE(), 21)             2011-05-09 09:13:14.670

SELECT CONVERT(varchar(100), GETDATE(), 120)           2011-05-09 09:17:19
SELECT CONVERT(varchar(100), GETDATE(),
121)           2011-05-09 09:17:19.857

 

SELECT CONVERT(varchar(100), GETDATE(), 11)            11/05/09

SELECT CONVERT(varchar(100), GETDATE(), 111)          2011/05/09

 

通过CONVERT是可以获取到想要的日期格式,但是并不够用,比如我要获取某一天或者某个星期,时分秒等,这个函数就显得力不从心了,因此再介绍个方法

---------------------------------------------------------------------------------------

获得年    

DATEPART(year,CreateDate)    

DATEPART(yyyy,CreateDate)    

DATEPART(yy,CreateDate)    

----------------------------------------------------------------------------------------

获得月

select datepart(month,GETDATE())    4  不是 04

select datepart(mm,GETDATE())

select datepart(m,GETDATE())

 

==================================================

获得日

select datepart(day,GETDATE())

select datepart(dd,GETDATE())

select datepart(d,GETDATE())

----------------------------------------------------------------------------------

获得该日是该年的第多少天

select datepart(dy,GETDATE())

------------------------------------------------------------

获得该日期是第几个季度

select datepart(qq,GETDATE())

-----------------------------------------------------

1年中的第多少周
select datepart(wk,'2013-06-08')

----------------------------------------------
星期
select datepart(dw,'2013-06-08')  会输出  7
select datepart(weekday, '2013-06-08')  会输出  7
select datename(weekday, '2013-06-08')  会输出  星期六

----------------------------------------------------------------------------------------------按日期查询订单数量-----------------------------------------------------------

select Convert(VARCHAR(10),CreateDate,120) AS 日期,count(*) as 记录
from Bill
where  CreateDate>'2016-01-01' and CreateDate<'2018-01-01'

group by Convert(VARCHAR(10),CreateDate,120)  order by  Convert(VARCHAR(10),CreateDate,120)

posted on 2017-04-19 11:43  奔游浪子  阅读(122)  评论(0)    收藏  举报

导航