SQL 日期操作相关

--1.显示本月第一天
SELECT DATEADD(mm,DATEDIFF(mm,0,getdate()),0) 
SELECT CONVERT(DATETIME,CONVERT(VARCHAR(8),GETDATE(),120)+'01',120)

--2.显示本月最后一天
SELECT DATEADD(DAY,-1,CONVERT(DATETIME,CONVERT(VARCHAR(8),DATEADD(MONTH,1,GETDATE()),120)+'01',120))
SELECT DATEADD(ms,-3,DATEADD(mm,DATEDIFF(m,0,GETDATE())+1,0)) 

--3.上个月的最后一天 
SELECT DATEADD(ms,-3,DATEADD(mm,DATEDIFF(mm,0,GETDATE()),0)) 

--4.本月的第一个星期一
SELECT DATEADD(wk,DATEDIFF(wk,0, DATEADD(dd,6-DATEPART(DAY,GETDATE()),GETDATE())),0)

--5.本年的第一天 
SELECT DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0) 

--6.本年的最后一天 
SELECT DATEADD(ms,-3,DATEADD(yy,DATEDIFF(yy,0,GETDATE())+1,0))

--7.去年的最后一天 
SELECT DATEADD(ms,-3,DATEADD(yy,DATEDIFF(yy,0,GETDATE()),0))

--8.本季度的第一天 
SELECT DATEADD(qq,DATEDIFF(qq,0,GETDATE()),0)  

--9.本周的星期一 
SELECT DATEADD(wk,DATEDIFF(wk,0,GETDATE()),0) 

--10.查询本月的记录 
SELECT * FROM tableName WHERE DATEPART(mm, theDate) = DATEPART(mm, GETDATE()) 
AND DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 

--11.查询本周的记录 
SELECT * FROM tableName WHERE DATEPART(wk, theDate) = DATEPART(wk, GETDATE()) 
AND DATEPART(yy, theDate) = DATEPART(yy, GETDATE()) 

--12.查询本季的记录
SELECT * FROM tableName WHERE DATEPART(qq, theDate) = DATEPART(qq, GETDATE()) 
AND DATEPART(yy, theDate) = DATEPART(yy, GETDATE())

--13.获取当月总天数:
SELECT DATEDIFF(dd,GETDATE(),DATEADD(mm, 1, GETDATE()))
SELECT DATEDIFF(DAY,DATEADD(mm, DATEDIFF(mm,'',GETDATE()), ''),DATEADD(mm, DATEDIFF(mm,'',GETDATE()), '1900-02-01'))

--14.获取当前为星期几
SELECT DATENAME(weekday, getdate())

--15. dateadd 在向指定日期加上一段时间的基础上,返回新的 datetime 值 例如:向日期加上2天 
SELECT DATEADD(DAY,2,'2004-10-15') --返回:2004-10-17 00:00:00.000

--16. DATEDIFF 返回跨两个指定日期的日期和时间边界数。
SELECT DATEDIFF(DAY,'2004-09-01','2004-09-18') --返回:17

--17. datepart 返回代表指定日期的指定日期部分的整数。年为year,月为month,日为day,小时hour,分为minute,秒为second
SELECT DATEPART(month, '2004-10-15') --返回 10

--18. datename 返回代表指定日期的指定日期部分的字符串
SELECT DATENAME(weekday, '2004-10-15') --返回:星期五

--19. day(), month(),year() --可以与datepart对照一下
SELECT 当前日期 = CONVERT(VARCHAR(10),GETDATE(),120),当前时间 = CONVERT(VARCHAR(8),GETDATE(),114) 
SELECT DATENAME (dw,'2004-10-15') 
SELECT 本年第多少周 = DATENAME(week ,'2004-10-15'),今天是周几= DATENAME(weekday,'2004-10-15')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值