declare @dt as datetime
set @dt = getdate()
select cast(convert(varchar(8),dateadd(month,(datepart(quarter,@dt)*3-month(@dt)-2),@dt),120)+'01' as datetime)
--result--
2008-11-01
計算邏輯:
用當前的季度 * 每季度的月份數(3) - 當前月 - 季度中的2個月份
如: date: 2008-11-06
季度: 4
計算: 4*3-11-2 = -1
根據計算的結用dateadd 求合,對日期時行調整,得出當前季度的第乙個月份,再拼接 『01』,得出當明季度的第一天。
通過變通我們可以得到季度最後乙個月的第一天:
select cast(convert(varchar(8),dateadd(month,(datepart(quarter,@dt)*3-month(@dt)),@dt),120)+'01' as datetime)
本月的最後一天:
declare @dt datetime
set @dt=getdate()
select dateadd(day,-1,convert(varchar(8),dateadd(month,1,@dt),120)+'1')
--result--
2008-11-30 00:00:00.000
另乙個方法最本月最後一天,減去天數,變成上個月的最後一天,再加1月份,變成當前月的最後天
select dateadd(month,1,dateadd(day,-day(@dt),@dt))
日期的推算
日期的推算 轉鄒老大的 declare dt datetime set dt getdate declare number int set number 3 1 指定日期該年的第一天或最後一天 a.年的第一天 select convert char 5 dt,120 1 1 b.年的最後一天 sel...
pta習題 退休日期推算
6 3 退休日期推算 10分 關於日期的結構定義如下 struct dateg 編寫兩個函式,乙個計算自公元1年1月1日到指定的日期共經歷了多少天。另乙個是前乙個函式的逆函式 由自公元1年1月1日歷經指定的天數後的日期 返回年月日構成的日期 dateg days2date int x 100 int...
MySql日期處理系列 常用的日期推算處理
title 常用的日期推算處理 auther 小強 占卜師 date 2007 12 25 取得當前日期 set dt curdate select dt 當前日期這個月的第一天 select concat left dt,8 1 當前日期這個月的最後一天 select date sub conca...