sql時間函式

2021-06-21 01:14:49 字數 3745 閱讀 3468

1、常用日期方法(下面的getdate() = '2006-11-08 13:37:56.233')

(1)datename ( datepart ,date )

返回表示指定日期的指定日期部分的字串。datepart詳見下面的列表.

select datename(day,getdate()) –返回8

(2)datepart ( datepart , date )

返回表示指定日期的指定日期部分的整數。

select datepart(year,getdate()) –返回2006

(3)dateadd (datepart , number, date )

返回給指定日期加上乙個時間間隔後的新datetime 值。

select dateadd(week,1,getdate()) --當前日期加一周後的日期

(4)datediff ( datepart , startdate , enddate )

返回跨兩個指定日期的日期邊界數和時間邊界數。

select datediff(month,'2006-10-11','2006-11-01') --返回1

(5)day ( date )

返回乙個整數,表示指定日期的天datepart 部分。

select day(getdate()) –返回8

(6)getdate()

以datetime 值的sql server 2005 標準內部格式返回當前系統日期和時間。

select getdate()   --返回2006-11-08 13:37:56.233

(7)month ( date )

返回表示指定日期的「月」部分的整數。

select month(getdate()) --返回11

(8)year ( date )

返回表示指定日期的「年」部分的整數。

select year(getdate()) --返回2006

2、取特定日期

(1)獲得當前日期是星期幾

select datename(weekday,getdate()) --wednesday

(2)計算哪一天是本週的星期一

select dateadd(week, datediff(week,'1900-01-01',getdate()), '1900-01-01')  --返回2006-11-06 00:00:00.000

或select dateadd(week, datediff(week,0,getdate()),0)     

(3)當前季度的第一天

select dateadd(quarter, datediff(quarter,0,getdate()), 0)—返回2006-10-01 00:00:00.000

(4)如何取得某個月的天數

select day(dateadd(ms,-3,dateadd(mm, datediff(m,0,'2006-02-03')+1,0)))  —返回28

(5)乙個季度多少天

declare @m tinyint,@time smalldatetime

select @m=month(getdate())

select @m=case when @m between 1 and 3 then 1

when @m between 4 and 6 then 4

when @m between 7  and 9 then 7

else 10 end

select @time=datename(year,getdate())+'-'+convert(varchar(10),@m)+'-01'

select datediff(day,@time,dateadd(mm,3,@time)) —返回92

(6)獲得年月日(yyyy-mm-dd)

select convert(varchar(10),getdate(),120) –返回2006-11-08

3、其它

(1)--下面的示例將日期指定為數字。資料庫引擎將0 解釋為1900 年1 月1 日。

select month(0), day(0), year(0) –返回1    1   1900

--下面兩句是等效的

select datename(weekday,0)

select datename(weekday,'1900-01-01')

(2)set datefirst

將一周的第一天設定為從1 到7 的乙個數字。

set datefirst 1 --表示一周的第一天是「星期一"

select datename(weekday,getdate()) --wednesday

select datepart(weekday,getdate()) --返回3

--檢視當前設定情況

select @@datefirst

(3)set dateformat

設定用於輸入datetime 或smalldatetime 資料的日期部分(月/日/年)的順序。

...有效引數包括mdy、dmy、ymd、ydm、myd 和dym。

...該設定僅用在將字串轉換為日期值時的解釋中。它不影響日期值的顯示。

...set dateformat 的設定是在執行或執行時設定,而不是在分析時設定。

...set dateformat 將覆蓋set language 的隱式日期格式設定。

下面是例子:

-- set date format to year, day, month.

set dateformat ydm;

godeclare @datevar datetime;

set @datevar = '1998/31/12';

select @datevar as datevar;

go-- set date format to year, month, day.

set dateformat ymd;

godeclare @datevar datetime;

set @datevar = '1998/12/31';

select @datevar as datevar;

go(4)日期部分的列表

日期部分

縮寫 year

yy, yyyy

quarter

qq, q

month

mm, m

dayofyear

dy, y

daydd, d

week

wk, ww

weekday

dwhour

hhminute

mi, n

second

ss, s

millisecond

ms資料庫時間處理:

date 引數是合法的日期表示式。number 是您希望新增的間隔數;對於未來的時間,此數是正數,對於過去的時間,此數是負數。

datepart 引數可以是下列的值:

datepart縮寫年

yy, yyyy

季度qq, q

月mm, m

年中的日

dy, y

日dd, d

周wk, ww

星期dw, w

小時hh

分鐘mi, n

秒ss, s

毫秒ms

微妙mcs

納秒ns

資料庫時間處理:dateadd(mm,-3,getdate())前三個月的當前時間

sql時間函式

一 sql server日期時間函式 當前系統日期 時間 select getdate 2dateadd 在向指定日期加上一段時間的基礎上,返回新的datetime值 select dateadd day,2,2004 10 15 返回 2004 10 17 00 00 00.000 3datedi...

SQL時間函式

datename 返回表示指定日期的指定日期部分的字串 datepart 返回表示指定日期的指定日期部分的整數 例如 select datename month,getdate 返回05 select datepart mm,getdate 返回5 select datename weekday,2...

SQL 時間函式

總結 datediff concat substr t1.day,1,4 substr t1.day,5,2 substr t1.day,7,2 concat substr t2.day,1,4 substr t2.day,5,2 substr t2.day,7,2 as diffsubstr st...