重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
---把getdate()替換成你的日期字段就可以了, between and的2個日期分別是你說的2個年頭年尾的情況
成都創新互聯專業為企業提供桂東網站建設、桂東做網站、桂東網站設計、桂東網站制作等企業網站建設、網頁設計與制作、桂東企業網站模板建站服務,十年桂東做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
select case when getdate()=cast('2014/1/1' as datetime) then datepart(week,getdate()) else 1 end as 第幾周
--from table_name
where getdate() between (case when datepart(weekday,cast('2014/1/1' as datetime))1 then
cast('2014/1/1' as datetime)-datepart(weekday,cast('2014/1/1' as datetime))+2
end )
and
(case when datepart(weekday,cast('2014/12/31' as datetime))6 then
cast('2014/12/31' as datetime)-datepart(weekday,cast('2014/12/31' as datetime))+1
end )
SQL SERVER查詢時間是一年中第幾周,使用函數 datepart()。
例:查詢 ‘2017-1-1’是2017年的第幾周,語句如下
select?datepart(wk,'2017-1-1')
datepart函數說明
一、函數功能:DATEPART() 函數用于返回日期/時間的單獨部分,比如年、月、日、小時、分鐘等等。
二、語法:DATEPART(datepart,date)
三、參數說明:date?參數是合法的日期表達式。datepart?參數可以是下列的值:
四、實例演示
假設我們有下面這個 "Orders" 表:
我們使用如下 SELECT 語句:
SELECT?DATEPART(yyyy,OrderDate)?AS?OrderYear,
DATEPART(mm,OrderDate)?AS?OrderMonth,
DATEPART(dd,OrderDate)?AS?OrderDay
FROM?Orders
WHERE?OrderId=1
結果:
指定一個起始日,計算到該日的天數,/7 得到經過的周數。然後按這個周數分組。
1、最近一月比較簡單,取當前時間的年份和月份,拼接成當前月份1號。
2、最后一周:取當前的時間為參考,用datepart取出時間的周編號,進行篩選,獲取最近周1的日期,比如,表格a,日期字段rq
select?max(rq)?from?表格a?
where?datepart(weekday,rq)?=?2?and?rq??當前時間?按到?rq??本月1號;
就三個字段(內容,創建日期,標志)
插入數據時標志初始為0,代表未提醒
定時掃描該表,
假設創建日期為2011-01-15
datediff(day,'2011-01-15',getdate())=1 --日
datediff(week,'2011-01-15',getdate())=1 --周
datediff(month,'2011-01-15',getdate())=1 --月
如過有符合條件的就提醒,然后把標志重置一下,比如1代表已經日提醒過,2代表日周都提醒過,3代表全提醒過,如果用戶未反饋就依然把標志設為0,下次掃描時接著提醒