日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

case 日期when 范围_多个日期段如何分组 case when convert等用法

發布時間:2024/10/8 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 case 日期when 范围_多个日期段如何分组 case when convert等用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

--23表示2006-05-16這種時間格式,按月

--select max(test.fee)-min(test.fee),CONVERT(varchar(20),

test.t_stamp, 23) from table_test test

--where test.m_id=17 and ?test.t_stamp

< '2013-02-25 00:00:00' and test.t_stamp

> '2013-01-01 00:00:00'

--group by CONVERT(varchar(20), test.t_stamp, 23)

--20表示2006-05-16 10:57:47這種時間格式,按天,每一個小時一個點

--varchar(13)截取日期中的2006-05-16 10到小時

--select max(test.fee)-min(test.fee),CONVERT(varchar(13),

test.t_stamp, 20) from table_test test

--where test.m_id=17 and ?test.t_stamp

< '2013-02-10 00:00:00' and test.t_stamp

> '2013-02-03 00:00:00'

--group by CONVERT(varchar(13), test.t_stamp,

20)

--23表示2006-05-16這種時間格式,按年,每個月一個點

--varchar(7)截取日期中的2006-05到月

--select max(test.fee)-min(test.fee),CONVERT(varchar(7),

test.t_stamp, 23) from table_test test

--where test.m_id=17 and ?test.t_stamp

< '2013-12-30 00:00:00' and test.t_stamp

> '2013-01-01 00:00:00'

--group by CONVERT(varchar(7), test.t_stamp, 23)

--23表示2006-05-16這種時間格式,按周

--select test.m_id,max(test.fee)-min(test.fee)

cmp,CONVERT(varchar(20), test.t_stamp, 23) stamp from table_test

test

--where test.m_id in(17,18) and ?test.t_stamp

< '2013-02-10 00:00:00' and test.t_stamp

> '2013-02-03 00:00:00'

--group by test.m_id,CONVERT(varchar(20), test.t_stamp,

23)

--23表示2006-05-16這種時間格式,按周,總電表實例

--select sum(cmp),stamp from(

-- select test.m_id,max(test.fee)-min(test.fee) as

cmp,CONVERT(varchar(20), test.t_stamp, 23)as stamp from table_test

test

-- where test.m_id in(17,18) and

test.t_stamp < '2013-02-10

00:00:00' and test.t_stamp > '2013-02-03

00:00:00'

-- group by test.m_id,CONVERT(varchar(20), test.t_stamp,

23)

--) as b group by stamp --select from

[表名],后面要跟一個表名而不是表,嵌套之后必需要用指定一個別名,否則就會出錯

--按周的12點分開兩個點

--case when 時間分組用法

--select m_id,sum(val) cmp,stamp =

--case

-- when stamp >= CONVERT(varchar(10), stamp,

23) + ' 00' and stamp <= CONVERT(varchar(10), stamp,

23) + ' 11'

-- then CONVERT(varchar(10), stamp, 23)+' 11:59:59'

-- when stamp >= CONVERT(varchar(10), stamp,

23) + ' 12' and stamp <= CONVERT(varchar(10), stamp,

23) + ' 23'

-- then CONVERT(varchar(10), stamp, 23)+' 23:59:59'

--else CONVERT(varchar(20), getdate(),

20)

--end

--from(

-- select test.m_id,(max(test.fee)-min(test.fee))

val,CONVERT(varchar(13), test.t_stamp, 20) stamp

-- from table_test test

-- where test.m_id in(17,18) and

test.t_stamp < '2013-02-10

00:00:00' and test.t_stamp > '2013-02-03

00:00:00'

-- group by test.m_id,CONVERT(varchar(13), test.t_stamp,

20)

--

--) as sumTable

--group by m_id,

--case

-- when stamp >= CONVERT(varchar(10), stamp,

23) + ' 00' and stamp <= CONVERT(varchar(10), stamp,

23) + ' 11'

-- then CONVERT(varchar(10), stamp, 23)+' 11:59:59'

-- when stamp >= CONVERT(varchar(10), stamp,

23) + ' 12' and stamp <= CONVERT(varchar(10), stamp,

23) + ' 23'

-- then CONVERT(varchar(10), stamp, 23)+' 23:59:59'

--else CONVERT(varchar(20), getdate(),

20)

--end

--order by stamp asc

--一年的每15天一個點

select m_id,sum(val) cmp,stamp =

case

when stamp >= CONVERT(varchar(7), stamp, 23) +

'-01' and stamp <= CONVERT(varchar(7), stamp, 23) +

'-15'

then CONVERT(varchar(7), stamp, 23) + '-15'

when stamp >= CONVERT(varchar(7), stamp, 23) +

'-15' and stamp <= CONVERT(varchar(7), stamp, 23) +

'-31'

then CONVERT(varchar(7), stamp, 23) + '-' +

convert(varchar(2),day(dateadd(day,-1,

dateadd(month,1,convert(varchar(7),stamp,23)+'-01'))))

else CONVERT(varchar(20), getdate(),

20)

end

from (

select test.m_id,(max(test.fee)-min(test.fee))

val,CONVERT(varchar(10), test.t_stamp, 23)

stamp

from table_test test

where test.m_id in(17,18) and ?test.t_stamp

< '2013-12-30 00:00:00' and test.t_stamp

> '2013-01-01 00:00:00'

group by CONVERT(varchar(10), test.t_stamp, 23),m_id

) as b group by m_id,

case

when stamp >= CONVERT(varchar(7), stamp, 23) +

'-01' and stamp <= CONVERT(varchar(7), stamp, 23) +

'-15'

then CONVERT(varchar(7), stamp, 23) + '-15'

when stamp >= CONVERT(varchar(7), stamp, 23) +

'-15' and stamp <= CONVERT(varchar(7), stamp, 23) +

'-31'

then CONVERT(varchar(7), stamp, 23) + '-' +

convert(varchar(2),day(dateadd(day,-1,

dateadd(month,1,convert(varchar(7),stamp,23)+'-01'))))

else CONVERT(varchar(20), getdate(),

20)

end

order by stamp desc

--int 轉 varchar

--select 'aa' + convert(varchar(2),day(dateadd(day,-1,

dateadd(month,1,convert(varchar(7),'2013-04-02',23)+'-01'))))

--varchar 轉int

--select convert(int,'02323')

總結

以上是生活随笔為你收集整理的case 日期when 范围_多个日期段如何分组 case when convert等用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。