亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

sql取當前周的函數

系統 1624 0

我工作遇到這么一個情況:
算當前周的課程,有兩種方法一種是用sql自帶的函數datediff(select * from Table8 where datediff(wk,COLUMN8,getdate())=0)
另一種是在c#后臺代碼中直接寫然后傳參。我想問一下這兩種方法哪一種更好,速度更快。


分析:
看你想把壓力給誰
數據量不大的話,還是sql會好一些

?

感悟:

以前都是在后臺去算,今天想了想,又查了查。發現在sql里就可以實現。看來我的sql基礎實在是太薄弱了。這讓我再一次意識到自己還有許多需要學習的。

?

下面程序前輩寫的sql取當周時間的詳細做法:

如何用sql獲取當前周的7個時間 ???

?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 --按日?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 select?sum(consume),day([date])?from?consume_record?where?year([date])?=?'2006'?group?by?day([date])?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 --按周quarter?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 select?sum(consume),datename(week,[date])?from?consume_record?where?year([date])?=?'2006'?group?by?datename(week,[date])?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 --按月?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 select?sum(consume),month([date])?from?consume_record?where?year([date])?=?'2006'?group?by?month([date])?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 --按季?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 select?sum(consume),datename(quarter,[date])?from?consume_record?where?year([date])?=?'2006'?group?by?datename(quarter,[date])?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 ?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 --指定日期你就看上面的例子變通下呀,無非就是一個聚合函數和Group?by?
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客
如何用sql獲取當前周的7個時間 - 轉角空 - zhuanjiaokong的博客 select?[date],sum(consume)?from?consume_record?where?[date]?between?'2006-06-01'?and?'2006-07-10'?group?by?[date]??

查詢當前周:
select?*?from?table
where?datediff(wk,startdate,getdate())=0

查詢下一周(也就是當前周的下一周):
select?*?from?table
where?datediff(wk,startdate,getdate())=-1

查詢上一周(也就是當前周的上一周):
select?*?from?table
where?datediff(wk,startdate,getdate())=1
///////////////////////////////////////////

declare?@today?datetime
select?@today?=?convert(varchar(10),?getdate(),?20)
declare?@weekday?int?
select?@weekday?=?datepart(weekday,?@today)
declare?@st?datetime,?@et?datetime?
select?@st?=?dateadd(dd,?1-@weekday,?@today),?@et?=?dateadd(dd,?7-@weekday,?@today)
select?*?from?table
where?startdate?between?@st?and?@et
當然,這里的開始時間、結束時間跟你sql?server的設置有關,即你的周是從周一開始還是從周日開始。

DECLARE?@dt?datetime
SET?@dt=GETDATE()
DECLARE?@number?int
SET?@number=3
--1.指定日期該年的第一天或最后一天
--A.?年的第一天
SELECT?CONVERT(char(5),@dt,120)+'1-1'
--B.?年的最后一天
SELECT?CONVERT(char(5),@dt,120)+'12-31'

--2.指定日期所在季度的第一天或最后一天
--A.?季度的第一天
SELECT?CONVERT(datetime,
????CONVERT(char(8),
????????DATEADD(Month,
????????????DATEPART(Quarter,@dt)*3-Month(@dt)-2,
????????????@dt),
????????120)+'1')
--B.?季度的最后一天(CASE判斷法)
SELECT?CONVERT(datetime,
????CONVERT(char(8),
????????DATEADD(Month,
????????????DATEPART(Quarter,@dt)*3-Month(@dt),
????????????@dt),
????????120)
????+CASE?WHEN?DATEPART(Quarter,@dt)?in(1,4)
????????THEN?'31'ELSE?'30'?END)
--C.?季度的最后一天(直接推算法)
SELECT?DATEADD(Day,-1,
????CONVERT(char(8),
????????DATEADD(Month,
????????????1+DATEPART(Quarter,@dt)*3-Month(@dt),
????????????@dt),
????????120)+'1')

--3.指定日期所在月份的第一天或最后一天
--A.?月的第一天
SELECT?CONVERT(datetime,CONVERT(char(8),@dt,120)+'1')
--B.?月的最后一天
SELECT?DATEADD(Day,-1,CONVERT(char(8),DATEADD(Month,1,@dt),120)+'1')
--C.?月的最后一天(容易使用的錯誤方法)
SELECT?DATEADD(Month,1,DATEADD(Day,-DAY(@dt),@dt))

--4.指定日期所在周的任意一天
SELECT?DATEADD(Day,@number-DATEPART(Weekday,@dt),@dt)

--5.指定日期所在周的任意星期幾
--A.??星期天做為一周的第1天
SELECT?DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-1)%7,@dt)
--B.??星期一做為一周的第1天
SELECT?DATEADD(Day,@number-(DATEPART(Weekday,@dt)+@@DATEFIRST-2)%7-1,@dt)
??
具體例子:?
SELECT?CONVERT(varchar(100),?GETDATE(),?0)union--:?05?16?2006?10:57AM?
SELECT?CONVERT(varchar(100),?GETDATE(),?1)union--:?05/16/06?
SELECT?CONVERT(varchar(100),?GETDATE(),?2)union--:?06.05.16?
SELECT?CONVERT(varchar(100),?GETDATE(),?3)union--:?16/05/06?
SELECT?CONVERT(varchar(100),?GETDATE(),?4)union--:?16.05.06?
SELECT?CONVERT(varchar(100),?GETDATE(),?5)union--:?16-05-06?
SELECT?CONVERT(varchar(100),?GETDATE(),?6)union--:?16?05?06?
SELECT?CONVERT(varchar(100),?GETDATE(),?7)union--:?05?16,?06?
SELECT?CONVERT(varchar(100),?GETDATE(),?8)union--:?10:57:46?
SELECT?CONVERT(varchar(100),?GETDATE(),?9)union--:?05?16?2006?10:57:46:827AM?
SELECT?CONVERT(varchar(100),?GETDATE(),?10)union--:?05-16-06?
SELECT?CONVERT(varchar(100),?GETDATE(),?11)union--:?06/05/16?
SELECT?CONVERT(varchar(100),?GETDATE(),?12)union--:?060516?
SELECT?CONVERT(varchar(100),?GETDATE(),?13)union--:?16?05?2006?10:57:46:937?
SELECT?CONVERT(varchar(100),?GETDATE(),?14)union--:?10:57:46:967?
SELECT?CONVERT(varchar(100),?GETDATE(),?20)union--:?2006-05-16?10:57:47?
SELECT?CONVERT(varchar(100),?GETDATE(),?21)union--:?2006-05-16?10:57:47.157?
SELECT?CONVERT(varchar(100),?GETDATE(),?22)union--:?05/16/06?10:57:47?AM?
SELECT?CONVERT(varchar(100),?GETDATE(),?23)union--:?2006-05-16?
SELECT?CONVERT(varchar(100),?GETDATE(),?24)union---:?10:57:47?
SELECT?CONVERT(varchar(100),?GETDATE(),?25)union--:?2006-05-16?10:57:47.250?
SELECT?CONVERT(varchar(100),?GETDATE(),?101)union--:?05/16/2006?
SELECT?CONVERT(varchar(100),?GETDATE(),?102)union--:?2006.05.16?
SELECT?CONVERT(varchar(100),?GETDATE(),?103)union--:?16/05/2006?
SELECT?CONVERT(varchar(100),?GETDATE(),?104)union---:?16.05.2006?
SELECT?CONVERT(varchar(100),?GETDATE(),?105)union--:?16-05-2006?
SELECT?CONVERT(varchar(100),?GETDATE(),?106)union--:?16?05?2006?
SELECT?CONVERT(varchar(100),?GETDATE(),?107)union---:?05?16,?2006?
SELECT?CONVERT(varchar(100),?GETDATE(),?108)union--:?10:57:49?
SELECT?CONVERT(varchar(100),?GETDATE(),?109)union--:?05?16?2006?10:57:49:437AM?
SELECT?CONVERT(varchar(100),?GETDATE(),?110)union--:?05-16-2006?
SELECT?CONVERT(varchar(100),?GETDATE(),?111)union--:?2006/05/16?
SELECT?CONVERT(varchar(100),?GETDATE(),?112)union--:?20060516?
SELECT?CONVERT(varchar(100),?GETDATE(),?113)union--:?16?05?2006?10:57:49:513?
SELECT?CONVERT(varchar(100),?GETDATE(),?114)union--:?10:57:49:547?
SELECT?CONVERT(varchar(100),?GETDATE(),?120)union--:?2006-05-16?10:57:49?
SELECT?CONVERT(varchar(100),?GETDATE(),?121)union--:?2006-05-16?10:57:49.700?
SELECT?CONVERT(varchar(100),?GETDATE(),?126)union--:?2006-05-16T10:57:49.827?
SELECT?CONVERT(varchar(100),?GETDATE(),?130)union--:?18?????????????1427?10:57:49:907AM?
SELECT?CONVERT(varchar(100),?GETDATE(),?131)--:?18/04/1427?10:57:49:920AM?

?

sql取當前周的函數


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品在线免费观看视频 | 国产精品一区不卡 | 亚洲综合色自拍一区 | 欧美大片国产在线永久播放 | 久久人人爽人人爽人人片av不 | 色综合久久久久久中文网 | 国产成人精品免费 | 日韩欧美黄色 | 日本一级淫片a的一级欧美 日本一级淫片a免费播放 | 天天干在线影院 | 久99久爱精品免费观看视频 | 亚洲夜夜骑 | 天天干天天拍天天射 | 国产精品精品国产一区二区 | 久久国产精品国产自线拍免费 | 国产精品www视频免费看 | xxxxxxx泡妞中国 | 99精品在线 | 亚洲码在线中文在线观看 | 精品久久久久久中文字幕欧美 | 欧美午夜视频一区二区三区 | 欧美一级毛片免费看 | 日韩一级黄色影片 | 欧美激情亚洲激情 | 久久精品国产夜色 | 久久精品国产亚洲精品2020 | h片在线播放免费高清 | 日日操夜夜摸 | 久久综合日韩亚洲精品色 | 国产精品_国产精品_国产精品 | 成人a毛片免费视频观看 | 久久精品国产69国产精品亚洲 | 欧美人交性视频在线香蕉 | 欧美色xxx | 男女91视频 | 天天干天天射天天操 | 综合亚洲网| 久久国产精品国产精品 | aaaaaa国产毛片孕妇版 | 成 人 免 费 黄 色 | 免费一级a毛片夜夜看 |