SQLServer學習筆記系列3

來源:互聯網
上載者:User

標籤:

一.寫在前面的話

今天又是雙休啦!生活依然再繼續,當你停下來的時候,或許會突然顯得不自在。有時候,看到一種東西,你會發現原來在這個社會上,優秀的人很多,默默

吃苦努力奮鬥的人也多!星期五早上按時上班,買好早餐,去公司餐廳吃早餐,我遇見了一個人,也許一次兩次我還不會去注意,然而我每次在餐廳吃早餐,

都會遇到他,我看到他的是每一次都帶著一碗白粥在那裡吃,甚至連一點鹹菜都沒用,或許我這樣的單身狗,不能理解有家室的痛楚,也許這是他的一種生活

方式,但我更多的看到的是他的一種吃苦,為了家人,為了將來的一種努力。也許是我想太多,但不管怎樣,我們都該注意身體,按時吃早餐,保持營養,為

了以後我們的家人和以後的幸福,我們更應該努力並保重著自己。說了這麼多,還是繼續我們的sqlserver的學習吧!前面的學習系列:

SQLServer學習筆記系列1:http://www.cnblogs.com/liupeng61624/p/4354983.html

SQLServer學習筆記系列2:http://www.cnblogs.com/liupeng61624/p/4367580.html

 

二.case運算式

(1)簡單運算式,例如,要查詢僱員表裡面地區(region)為WA的用“華盛頓地區”代替表示。

1  select firstname,lastname,2  case region3  when ‘WA‘ then ‘華盛頓地區‘4  else ‘其他地區‘5  end6  from hr.employees

(2)搜尋運算式,在這裡我們先查詢下僱員表(hr.employees裡面的資訊。

1  select firstname,lastname,region2  from hr.employees

假如對於region為null的地區,我們想用“未知地區”來表達,該怎麼寫了?此時就需要用到搜尋運算式,可以這樣寫:

1  select firstname,lastname,2  case when region =‘WA‘ then ‘華盛頓地區‘3       when region is null then ‘未知地區‘4  else ‘其他地區‘5  end6  from hr.employees

結果:

 

三.日期和時間資料的處理。

(1)字串日期

‘20080301’,這一串為字串日期,但必須保證為四位的年份,兩位的月份,兩位的日期。例如,查詢訂單表日期大於‘20080301’。可以這樣寫:

1  select * from sales.orders2  where orderdate>‘20080301‘

結果:

(2)cast進行轉化。例如,可以講‘20080301’轉化為時間類型。其結果跟一樣。

1  select * from sales.orders2  where orderdate>cast(‘20080301‘ as datetime)

(3)datepart,截取日期中的某一段,year代表截取年,month代表截取月份,day代表截取日期。等等。。。。。

例如:截取目前時間的某一部分。

1  select datepart(year,getdate()) as N‘年份‘,2         datepart(month,getdate()) as N‘月份‘,3         datepart(day,getdate()) as N‘日‘,4         datepart(hour,getdate()) as N‘時‘,5         datepart(minute,getdate()) as N‘分‘,6         datepart(second,getdate()) as N‘秒‘

結果

(4)特殊日期截取部分,例如:

1   select datepart(dayofyear,getdate()) as N‘一年中的第幾天‘,2         datepart(weekday,getdate()) as N‘一星期中第幾天‘,3         datepart(week,getdate()) as N‘今年的第幾周‘

結果

(5)日期的加減。dateAdd(增長單位(年、月、日),步長(增長多少),基數),datediff(單位,步長,基數)。

例如:當前日期加20天是多少?算一算我深愛的祖國建國多久?本屌絲今年多大?

1  select dateadd(day,20,getdate()) as N‘20天后的是什麼日子‘,2         datediff(year,‘19491001‘,getdate()) as N‘祖國成立這麼多年啦‘,3         datediff(year,‘19911002‘,getdate()) as N‘屌絲多大啦‘

(6)cast與convert,兩者都能講字串或者其他形式的轉化為指定的類型。不同的是:convert轉化時可以指定轉化的樣式,cast則直接轉化。

例如:

1  select convert(nvarchar,getdate(),112) as N‘轉化後的形式‘,2        left( convert(nvarchar,getdate(),112),6) as N‘取出年月‘

結果

這次內容比較少,下一節準備學習我們常用的join串連,準備好好學習一下。

 

希望各位大牛給出指導,不當之處虛心接受學習!謝謝!

SQLServer學習筆記系列3

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.