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

sql取當(dāng)前周的函數(shù)

系統(tǒng) 1934 0

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


分析:
看你想把壓力給誰(shuí)
數(shù)據(jù)量不大的話,還是sql會(huì)好一些

?

感悟:

以前都是在后臺(tái)去算,今天想了想,又查了查。發(fā)現(xiàn)在sql里就可以實(shí)現(xiàn)。看來(lái)我的sql基礎(chǔ)實(shí)在是太薄弱了。這讓我再一次意識(shí)到自己還有許多需要學(xué)習(xí)的。

?

下面程序前輩寫(xiě)的sql取當(dāng)周時(shí)間的詳細(xì)做法:

如何用sql獲取當(dāng)前周的7個(gè)時(shí)間 ???

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

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

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

查詢上一周(也就是當(dāng)前周的上一周):
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
當(dāng)然,這里的開(kāi)始時(shí)間、結(jié)束時(shí)間跟你sql?server的設(shè)置有關(guān),即你的周是從周一開(kāi)始還是從周日開(kāi)始。

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.?月的最后一天(容易使用的錯(cuò)誤方法)
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取當(dāng)前周的函數(shù)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 在线播放人成午夜免费视频 | 一级特黄女人生活片 | 91在线看片 | 国产系列欧美系列日韩系列在线 | 日本欧美一区二区三区在线 | 久热精品免费视频 | 起碰成人免费公开网视频 | 国产高清国内精品福利 | 大学生一一级毛片在线播放 | 国产精品美女久久久久网站 | 久久国产亚洲高清观看5388 | 苦瓜se影院在线视频网站 | 水中色av综合 | 亚洲精品在线观看91 | 一级特黄aaa大片大全 | 久草在线影| 天天干天天色天天干 | 欧美日韩国产在线 | 四虎在线视频 | 亚洲国产精品a一区二区三区 | 婷婷色网站 | 天堂一区二区三区在线观看 | 国产精品久久久精品视频 | 自拍亚洲国产 | 欧美成人观看视频在线 | 国产精品免费一区二区区 | 久青草免费视频手机在线观看 | 涩涩色中文综合亚洲 | 欧美成人性色 | 国产色啪午夜免费视频 | 免费观看黄色网 | 日本黄色视 | 香蕉免费看一区二区三区 | 精品国产91乱码一区二区三区 | 性影院 | 99久久免费国产精精品 | 久草热线视频 | 国产成人精品日本亚洲网站 | 久久久精品久久久久特色影视 | 欧美三级一区二区 | 亚洲欧美在线观看一区二区 |