標籤:
一.寫在前面的話
今天又是雙休啦!生活依然再繼續,當你停下來的時候,或許會突然顯得不自在。有時候,看到一種東西,你會發現原來在這個社會上,優秀的人很多,默默
吃苦努力奮鬥的人也多!星期五早上按時上班,買好早餐,去公司餐廳吃早餐,我遇見了一個人,也許一次兩次我還不會去注意,然而我每次在餐廳吃早餐,
都會遇到他,我看到他的是每一次都帶著一碗白粥在那裡吃,甚至連一點鹹菜都沒用,或許我這樣的單身狗,不能理解有家室的痛楚,也許這是他的一種生活
方式,但我更多的看到的是他的一種吃苦,為了家人,為了將來的一種努力。也許是我想太多,但不管怎樣,我們都該注意身體,按時吃早餐,保持營養,為
了以後我們的家人和以後的幸福,我們更應該努力並保重著自己。說了這麼多,還是繼續我們的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