sql datediff函式問題

時間 2021-09-08 03:20:01

1樓:匿名使用者

--按天計算不靠譜,還是按月計算,用天做個判斷

--以下表裡的日期是你的入職日期,2015-10-12是離職日期

--那麼

--a的月份就滿3個月了,b的就沒有

create table t

(編號 varchar(10),

日期 date

)insert into t values('a','2015-7-10')

insert into t values('b','2015-7-15')

insert into t values('c','2015-2-01')

insert into t values('d','2014-2-01')

insert into t values('e','2014-12-28')

select *,datediff(m,日期,'2015-10-12')-case when day(日期)>day('2015-10-12') then 1 else 0 end from t

2樓:全國流竄

計算天,不計算月,如果有閏月就加1天。

sql資料庫中的datediff函式是什麼意思

3樓:匿名使用者

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

goselect datediff(day, pubdate, getdate()) as no_of_days

from titles

go謝謝!

4樓:

樓上已經分析的

復很清楚了!制

我給你舉個例子

select datediff(day,'2010-07-08','2010-07-09')

結果顯示為 1

day為計算兩個日期的天的差

month為計算兩個的月份差。就是7-6=1如:

select datediff(day,'2010-06-08','2010-07-09')

結果也為1

同理還有year,minute,second 等

你好,請問sql server使用datediff函式計算的值是什麼型別的,可以直接參與

5樓:我是醜九怪

--datediff() 函式 作用:

--datediff() 函式返回「開始日期」與「結束日期」之間的差值(如:年、天數等)。

--返回值型別:

--datediff() 函式返回值型別為:long(長整型),範圍從 -2,147,483,648 到 2,147,483,647。

--語法:

datediff(引數 , 開始日期 , 結束日期)--返回長整型,可以直接運算

select datediff(minute,getdate(),dateadd(day,1,getdate()))

結果為1440  , 1440=24*60minutes

數學函式問題,數學函式問題?

第一個怎麼可能正確?翻白眼 利用二次函式的性質得到 x 8x的最大值是16,請問這時候x是多少?是4.也就是說x 4時,3 x y 取到最大值16,是這樣嗎?你自己看看此時y有實數解嗎?做不等式的題目,最恨的就是做完了不去驗證一下等號是否能取到.你這道題但凡是去驗證最大值為16 3時x和y是否存在,...

複變函式問題,複變函式問題

小影子快 這個題實際上是要說明對於複變函式而言,冪函式可能是多值的。所謂的多值,就是指對於一個自變數z,z 會有多個取值。在實變函式裡面,這種情況出現得比較少,只有反三角函式會出現多值,而且對這類多值函式取它們的 主值 這時候多值函式就變成單值函式了。但是在複變函式裡面,為了考慮方程所有的根,這時候...

關於超越函式的問題,關於數學的函式問題

對數函式的變數之間的關係不能用有限次加 減 乘 除 乘方 開方運算表示. 意思就是 只含加 減 乘 除 乘方 開方六種運算的叫代數函式 包括常函式 其他的叫超越函式,比如 指數函式 對數函式 三角函式 反三角函式 雙曲函式 等等 中學階段沒有嚴格定義 這個定義比你那個明確吧?你那個定義裡的變數間的關...