DateDiff函數,datediff

來源:互聯網
上載者:User

DateDiff函數,datediff
在MySQL中可以使用DATEDIFF()Function Compute兩個日期之間的天數

文法:

datediff(date1,date2)
註:date1和date2需是合法的日期或日期/時間運算式



例1

SELECT DATEDIFF('2010-6-30','2010-6-26') AS DiffDate


例2

SELECT DATEDIFF('20140618145239','20140613125249') AS DiffDate


oracle中沒有DateDiff函數 如何計算兩個日期之間的天數呢?

在oracle中日期類型可以直接比較

select to_date('2014-05-05','yyyy-mm-dd') - to_date('2014-05-02','yyyy-mm-dd') from dual

這樣就可以計算出兩個時間相差的天數。


如果是時間戳記

SELECT to_date('20140322154628', 'yyyymmddhh24miss') - to_date('20140320114631', 'yyyymmddhh24miss')from dual 


也可以計算相差天數,但發現有小數,所以可以使用floor

select floor(to_date('20140322154628', 'yyyymmddhh24miss') - to_date('20140320114631', 'yyyymmddhh24miss')) from dual; 






datediff函數用法

DateDiff DateDiff: SQL server函數
返回 Variant (Long) 的值,表示兩個指定日期間的時間間隔數目。
文法
DateDiff(interval, date1, date2[, firstdayofweek[, firstweekofyear]])
DateDiff 函數文法中有下列具名引數:
部分 描述
interval 必要。字串運算式,表示用來計算date1 和 date2 的時間差的時間間隔
Date1□date2 必要;Variant (Date)。計算中要用到的兩個日期。
Firstdayofweek 可選。指定一個星期的第一天的常數。如果未予指定,則以星期日為第一天。
firstweekofyear 可選。指定一年的第一周的常數。如果未予指定,則以包含 1 月 1 日的星期為第一周。
設定
interval 參數的設定值如下:
設定 描述
yyyy 年
q 季
m 月
y 一年的日數
d 日
w 一周的日數
ww 周
h 時
n 分鐘
s 秒
firstdayofweek 參數的設定值如下:
常數 值 描述
vbUseSystem 0 使用 NLS API 設定。
vbSunday 1 星期日(預設值)
vbMonday 2 星期一
vbTuesday 3 星期二
vbWednesday 4 星期三
vbThursday 5 星期四
vbFriday 6 星期五
vbSaturday 7 星期六
常數 值 描述
vbUseSystem 0 用 NLS API 設定。
vbFirstJan1 1 從包含 1 月 1 日的星期開始(預設值)。
vbFirstFourDays 2 從第一個其大半個星期在新的一年的一周開始。
vbFirstFullWeek 3 從第一個無跨年度的星期開始。
說明
DateDiff 函數可用來決定兩個日期之間所指定的時間間隔數目。例如,可以使用 DateDiff 來計算兩個日期之間相隔幾日,或計算從今天起到年底還有多少個星期。
為了計算 date1 與 date2 相差的日數,可以使用“一年的日數”(y) 或“日”(d)。當 interval 是“一周的日數”(w) 時,DateDiff 返回兩日期間的周數。如果 date1 是星期一,DateDiff 計算到 date2 為止的星期一的個數。這個數包含 date2 但不包含 date1。不過,如果 interval 是“周”(ww),則 DateDiff 函數返回兩日期間的“日曆周”數。由計算 date1 與 date2 之間星期日的個數而得。如果 date2 剛好是星期日,則 date2 也會被加進 DateDiff 的計數結果中;但不論 date1 是否為星期日,都不將它算進去。
如果 date1 比 date2 來得晚,則 DateDiff 函數的傳回值為負數。
firstdayofweek 參數會影響使用時間間隔符號 “W” 或 “WW” 計算的結果。
如果 date1 或 date2 是日期文字,則指定的年份成為該日期的固定部分。但是,如果 date1 或 date2 用雙引號 (" ") 括起來,且年份略而不提,則在每次計算運算式 date1 或 date......餘下全文>>
 
sql資料庫中的datediff函數是什

SQL中DateDiff的用法

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

文法
DATEDIFF ( datepart , startdate , enddate )

參數
datepart

是規定了應在日期的哪一部分計算差額的參數。下表列出了 Microsoft® SQL Server™ 識別的日期部分和縮寫。

日期部分 縮寫
year yy, yyyy
quarter qq, q
Month mm, m
dayofyear dy, y
Day dd, d
Week wk, ww
Hour hh
minute mi, n
second ss, s
millisecond ms

startdate

是計算的開始日期。startdate 是返回 datetime 或 smalldatetime 值或日期格式字串的運算式。

因為 smalldatetime 只精確到分鐘,所以當用 smalldatetime 值時,秒和毫秒總是 0。

如果您只指定年份的最後兩位元字,則小於或等於"兩位元年份截止期"配置選項的值的最後兩位元字的數字所在世紀與截止年所在世紀相同。大於該選項的值的最後兩位元字的數字所在世紀為截止年所在世紀的前一個世紀。例如,如果 two digit year cutoff 為 2049(預設),則 49 被解釋為 2049,2050 被解釋為 1950。為避免模糊,請使用四位元的年份。

有關時間值指定的更多資訊,請參見時間格式。有關日期指定的更多資訊,請參見 datetime 和 smalldatetime。

enddate

是計算的終止日期。enddate 是返回 datetime 或 smalldatetime 值或日期格式字串的運算式。

傳回型別
integer

注釋
startdate 是從 enddate 減去。如果 startdate 比 enddate 晚,返回負值。

當結果超出整數值範圍,DATEDIFF 產生錯誤。對於毫秒,最大數是 24 天 20 小時 31 分鐘零 23.647 秒。對於秒,最大數是 68 年。

計算跨分鐘、秒和毫秒這些邊界的方法,使得 DATEDIFF 給出的結果在全部資料類型中是一致的。結果是帶加號或減號的整數值,其等於跨第一個和第二個日期間的 datepart 邊界數。例如,在 1 月 4 日(星期日)和 1 月 11 日(星期日)之間的星期數是 1。

樣本
此樣本確定在 pubs 資料庫中標題發布日期和當前日期間的天數。

USE pubs
GO
SELECT DATEDIFF(day, pubdate, getdate()) AS no_of_days
FROM titles
GO

謝謝!
 

相關文章

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.