當前位置:首頁 » 編程語言 » sql計算兩列日期差
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql計算兩列日期差

發布時間: 2022-11-01 00:28:42

『壹』 如何用sql計算access2007數據表兩個日期差

access與SqlServer 之時間與日期及其它SQL語句比較

1、Datediff:

1.1算出日期差:
1.access: datediff('d',fixdate,getdate())
2.sqlserver: datediff(day,fixdate,getdate())
ACCESS實例: select * from table where data=datediff('d',fixdate,getdate())
sqlserver實例: select * from table where data=datediff(day,fixdate,getdate())
1.2算出時間差:
1.access: datediff('h',fixdate,getdate())
2.sqlserver: datediff(Hour,'2004-12-10',getdate())
ACCESS實例: select DATEDIFF('h',HMD,getdate())
sqlserver實例: select datediff(Hour,'2004-12-10',getdate())
1.3算出月份差:
1.access: datediff('m',fixdate,getdate())
2.sqlserver: datediff(Month,'2004-12-10',getdate())
ACCESS實例: select DATEDIFF('m',HMD,getdate())
sqlserver實例: select datediff(Month,'2004-12-10',getdate())

『貳』 如何簡單地用一句SQL算一下兩個日期間相差的月份數

使用Datedif(日期1,日期2,"m")函數
DATEDIF是EXCEL中的函數,還有以下的使用方法一並教教:
1、簡要說明: 返回兩個日期之間的年\月\日間隔數

2、基本語法: =DATEDIF(開始日期,結束日期,單位代碼)

3、實例1:
題目: 計算出生日期為1973-4-1人的年齡

公式: =DATEDIF("1973-4-1",TODAY(),"Y")

結果: 33

簡要說明 當單位代碼為"Y"時,計算結果是兩個日期間隔的年數.

4、實例2:
題目: 計算日期為1973-4-1和當前日期的間隔月份數.

公式: =DATEDIF("1973-4-1",TODAY(),"M")

結果: 403

簡要說明 當單位代碼為"M"時,計算結果是兩個日期間隔的月份數.

5、實例3:
題目: 計算日期為1973-4-1和當前日期的間隔天數.

公式: =DATEDIF("1973-4-1",TODAY(),"D")

結果: 12273

簡要說明 當單位代碼為"D"時,計算結果是兩個日期間隔的天數.

5、實例4:
題目: 計算日期為1973-4-1和當前日期的不計年數的間隔天數.

公式: =DATEDIF("1973-4-1",TODAY(),"YD")

結果: 220

簡要說明 當單位代碼為"YD"時,計算結果是兩個日期間隔的天數.忽略年數差

5、實例5:
題目: 計算日期為1973-4-1和當前日期的不計月份和年份的間隔天數.

公式: =DATEDIF("1973-4-1",TODAY(),"MD")

結果: 6

簡要說明 當單位代碼為"MD"時,計算結果是兩個日期間隔的天數.忽略年數和月份之差

5、實例6:
題目: 計算日期為1973-4-1和當前日期的不計年份的間隔月份數.

公式: =DATEDIF("1973-4-1",TODAY(),"YM")

結果: 7

簡要說明 當單位代碼為"YM"時,計算結果是兩個日期間隔的月份數.不計相差年數

『叄』 SQL中計算兩列之間相差的天數,注意:列數據類型為:CHAR非日期型

select to_date(日期1,'yyyy-mm-dd') - to_date(日期2,'yyyy-mm-dd') from al;

『肆』 SQL是計算兩個日期相差多少天數的函數

SQL是高級的非過程化編程語言,一般針對資料庫進行操作。

定義:datediff(day/month/year,startdate,enddate)

日期函數:(要返回的天數/月數/年數,開始日期,結束日期)

具體形式:
select 1,2,datediff(day,1,2) 天數 from aa

『伍』 sql 計算兩個日期相差多少年月日

如:起始時間
2011-1-1
截止日期
2011-2-1
兩個時間比較相差
0年1個月
如:起始時間
2010-11-1
截止日期
2011-12-1
兩個時間比較相差
1年1個月
怎麼比較才能得出~
相差多少年
多少個月
這個當然很簡單,
一句sql就可以了:select
ltrim(datediff(yy,@dt1,@dt2))+'年'+ltrim(datediff(mm,@dt1,@dt2)%12)+'月'
但是如果連幾天也要計算呢?閑著沒事自己隨便在sql
server下寫了寫,store
proceres代碼如下,應該沒可以了:create
procere
getdatediff
@fromdate
nvarchar(10),
@todate
nvarchar(10)
as
declare
@yeardiff
integer
declare
@monthdiff
integer
declare
@daydiff
integer
declare
@tomonth
integer
declare
@fromday
integer
declare
@today
integer
set
@yeardiff
=
ltrim(datediff(yy,
@fromdate,
@todate))
set
@monthdiff
=
ltrim(datediff(mm,
@fromdate,
@todate)%12)
set
@tomonth
=
month(cast(@todate
as
datetime))
set
@fromday
=
day(cast(@fromdate
as
datetime))
set
@today
=
day(cast(@todate
as
datetime))
if
(@today
-
@fromday)
<
0
begin
if
(@tomonth
-
1)
=
1
or
(@tomonth
-
1)
=
3
or
(@tomonth
-
1)
=
5
or
(@tomonth
-
1)
=
7
or
(@tomonth
-
1)
=
8
or
(@tomonth
-
1)
=
10
or
(@tomonth
-
1)
=
12
begin
set
@daydiff
=
31
+
@today
-
@fromday
set
@monthdiff
=
@monthdiff
-1
end
else
begin
set
@daydiff
=
30
+
@today
-
@fromday
set
@monthdiff
=
@monthdiff
-1
end
end
else
begin
set
@daydiff
=
@today
-
@fromday
end
select
cast(@yeardiff
as
nvarchar(10))
+
'年'
+
cast(@monthdiff
as
nvarchar(10))
+
'月'
+
cast(@daydiff
as
nvarchar(10))
+
'日'

『陸』 SQL 計算兩個日期相差多少天數的函數

SQL是高級的非過程化編程語言,一般針對資料庫進行操作。

定義:datediff(day/month/year,startdate,enddate)

日期函數:(要返回的天數/月數/年數,開始日期,結束日期)

具體形式:
select 1,2,datediff(day,1,2) 天數 from aa

還有一些方法:

使用DATEDIFF函數可以求兩個日期之間相差的天數。

MySQL中的DATEDIFF函數僅需要兩個參數 (即要計算相差天數的兩個日期),第一個參數應是兩個日期中較小的值,以避免出現負值(SQL Server中正好相反)。

在SQL Server中,可以指定該函數返回值所表示的類型(在這個例子中,返回以「日」為單位的差)。下面的解決方案採用了SQL Server的版本:

1 select datediff(day,allen_hd,ward_hd)

2 from (

3 select hiredate as ward_hd

4 from emp

5 where ename = 'WARD'

6 ) x,

7 (

8 select hiredate as allen_hd

9 from emp

10 where ename = 'ALLEN'

11 ) y

MySQL用戶只需去掉該函數的第一個參數,交換一下傳遞ALLEN_HD和WARD_HD的順序即可。

『柒』 利用SQL語句如何獲得兩個日期之間相差的天數

用sysdate假設結束日期欄位是end_date

添加這個判斷條件:

where to_char("end_date",'YYYY') = to_char(sysdate,'YYYY') 判斷年相同

and to_char("end_date",'MM') = to_char(sysdate,'MM') 判斷月相同

and to_char("end_date",'dd') - to_char(sysdate,'dd') = 15 判斷日相同

或者:

where to_char("end_date",'YYYY-MM-DD') - to_char(sysdate,'YYYY-MM-DD')=15

(7)sql計算兩列日期差擴展閱讀:

注意事項

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

語法:DATEDIFF ( datepart , startdate , enddate )

參數:datepart

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

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 年。

『捌』 如何使用mysql計算兩個日期之間的時間差

MySql計算兩個日期時間的差函數:
第一種:TIMESTAMPDIFF函數,需要傳入三個參數,第一個是比較的類型,可以比較FRAC_SECOND、SECOND、 MINUTE、 HOUR、 DAY、 WEEK、 MONTH、 QUARTER或 YEAR幾種類型,第二個和第三個參數是待比較的兩個時間,比較是後一個時間減前一個時間,具體用法如下:

[sql] view plain
SELECT TIMESTAMPDIFF(DAY,'2012-10-01','2013-01-13');
返回結果是104,這里比較的是兩個時間的天數差;

[sql] view plain
SELECT TIMESTAMPDIFF(MONTH,'2012-10-01','2013-01-13');

這里比較的是兩個時間的月份,返回的結果是3;

第二種方法: DATEDIFF函數,就傳入兩個日期函數,比較的DAY天數,第一個參數減去第二個參數的天數值,具體用法如下:

[sql] view plain
SELECT DATEDIFF('2013-01-13','2012-10-01');
返回的結果也是104。

另外其它的日期函數,
now()函數返回的是當前時間的年月日時分秒,如:2008-12-29 16:25:46
CURDATE()函數返回的是年月日信息: 如:2008-12-29
CURTIME()函數返回的是當前時間的時分秒信息,如:16:25:46
另外,如果我們想對一個包含年月日時分秒日期格式化成年月日日期,可以使用DATE(time)函數,如
DATE(now()) 返回的是 2008-12-29

『玖』 sql兩列時間日期相減怎麼寫

你好的
正常來說兩個日期可以直接減
如果這兩列就是日期類型
select avg(收貨日期-寄送日期) from 表名;
這樣就能直接獲取到所有的快遞的平均日期
望採納!