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)
浙公网安备 33010602011771号