MS SQL - 日期應用
參考資料:
sql 時間轉換格式convert(varchar(10),字段名,轉換格式)
SQL:Getdate+日期格式
每日一SQL-善用DATEADD和DATEDIFF
◎ 時間轉換格式
CONVERT ( 資料型別 [(長度)] , expression內容 [, 樣式代碼])
簡介 :
convent為日期轉換函數,一般就是在時間類型(datetime, smalldatetime)與字符串類型(nchar, nvarchar, char, varchar)
俺〞 常用格式 ↓↓↓↓
8 | 108 | hh:mm:ss
12 | 112 | yymmdd
14 | 114 | hh:mi:ss:mmm(24小時制)
15 | 20 or 120 | yyyy-mm-dd hh:mi:ss(24小時制)
16 | 21 or 121 | yyyy-mm-dd hh:mi:ss:mmm(24小時制)
-- #時間(8, 24, 108)
-- 10:25:35
SELECT CONVERT(varchar,getdate(),24)
-- #日期 + 時間 (15, 20, 120)
-- 2013-09-09 10:25:35
SELECT CONVERT(varchar,getdate(),20)
-- #日期
-- 2013.09.09
SELECT CONVERT(varchar,getdate(),102)
-- 2013/09/09
SELECT CONVERT(varchar,getdate(),111)
-- 20130909
SELECT CONVERT(varchar,getdate(),112)
-- ※補:若要取代日期內的格式
-- 2013*09*09
SELECT REPLACE(CONVERT(VARCHAR(10),getdate(),111),'/','*')
◎ DATEADD
簡介 :
DATEADD是計算某日期加上一個數值,傳回的日期
DATEADD (datepart , number , date )
datepart一樣是單位,number是指定的數值,date是要被加上的原始日期
-- 取得日期的月份 + 2
SELECT DATEADD(MONTH, 2, getdate())
◎ DATEDIFF
簡介 :
DATEDIFF是算兩個日期間的間隔,傳回帶正負號的整數
DATEDIFF ( datepart , startdate , enddate ) datepart為間隔的單位
-- 出來的結果就是 1,代表相隔一天。
SELECT DATEDIFF(DAY, '2013-09-28','2013-09-29')
-- 延伸應用 --
-- 取得月份的第一天
SELECT DATEADD(MONTH, DATEDIFF(MONTH, 0, GETDATE()), 0)
-- 取得月份的最後一天
SELECT DATEADD(MONTH, DATEDIFF(MONTH, -1, GETDATE()), -1)
※ 註 : 當季 - Quarter, 月 - Month , 天 - Day
卒仔〞筆記 : 筆記 筆記!!!!
沒有留言:
張貼留言