DATEPART 從日其中抽出一個日期值
SELECT GETDATE();
SELECT DATEPART(YEAR, GETDATE()) ;
得到的值是 2012 所以DATEPART 是很有用的
請在網路上搜尋DATEPART地說明
這個真的真的真的常用!!!
常用到取得的數值做比較
選取 BOOK資料表中1999年5月的銷售資料
日期時間是用數值表示 整數代表日 小數代表時間
UNIXTIME UNIXDATE (1970 01 01 00:00)代表起始值
第二種 (1900 01 01 00:00)
第三種 (0000 01 01 00:00)
日期相加減必須先轉型(不是從資料庫獲得的訊息)
select '2012-9-1'-'2012-8-1' 得到是錯誤訊息 因為是兩個字串相減 (無法計算) 必須轉型
select convert(datetime, 2012-9-1) - convert(datetime, 2012-8-1)
結果是 1900-2-1 因為是datetime 格式 從起始值表示 (1900-01-01) 故答案也是錯誤 必須在轉型
正確是
select convert(integer, (convert(datetime, 2012-9-1)-convert(datetime, 2012-8-1)) = 31
答案是31天
從資料庫擷取到的日期相加減 如下,請注意函數的不同....
日期格式轉換用convert 必須轉為varchar
CONVERT 語法說明
利用case 計算條件數值
利用coalesce 將 null值轉為其他值表現出來 ,在SQLserver 可以用isnull 的功能代替!!
nullif 是將 其他值轉換為null 值 可避免除數是0
分組之後再匯總
使用彙總函數分類篩選資料庫,重點是先分類再彙總
資料摘要與分組
第一個是取銷售料最大第一筆訂單,重要的是用兩層select
第二個選取客戶總數(不重複)
沒有留言:
張貼留言