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

sql計算日期差到秒

發布時間: 2023-03-25 21:53:45

『壹』 sql 計算時間差得到時分秒。

declare @day int
declare @hour int
declare @min int
declare @sec int
declare @alls int
set @alls=datediff(s,'2009-11-21 00:00:00','2009-11-24 15:12:24')
set @day=@alls/86400
set @hour=(@alls-@day*86400)/3600
set @min=(@alls-@day*86400-@hour*3600)/60
set @sec=@alls-@day*86400-@hour*3600-@min*60
select CAST(@day as varchar(5))+'天'+CAST(@hour as varchar(2))+'小時'+CAST(@min as varchar(2))+'分'+CAST(@sec as varchar(2))+'秒'

『貳』 sql求時間差,精確到秒分時

多行記錄做這樣的時間差值計算思路:

  1. 要將簽入和簽出配對處理,然後才能求出時間差值

  2. 或使用隱式游標進行處理,可以求出上一行記錄和下一行記錄的時間差值,但SQL語句極其晦澀難懂。

SQL計算秒的差值為:

selectdatediff(ss,'2019-01-0102:03:04',getdate())

『叄』 sql怎麼計算時間差

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

語法

DATEDIFF(datepart,startdate,enddate)

參數

datepart

『肆』 在Sql語句中怎樣計算出兩個日期的差值

sql語句中計算兩個日期的差值用datediff函數。

工具:sqlserver 2008 R2

步驟:

1、計算2009-06-23與2009-06-17之間的天數。語句如下:

selectdatediff(d,'2009-06-17','2009-06-23')

2、查詢結果:

『伍』 怎樣得出sql中日期差

DateDiff("n", CDate("1998-8-3 5:30"), CDate("1999-4-3 6:5"))
這里第一個參數是時間間隔,"n"表示分鍾。也可以取其他單位,最小單位為秒。
可以使用DateDiff()函數。如:
DateDiff("d", BeginDate, EndDate)。
DateDiff函數實際是用BeginDate - EndDate,如果EndDate > BeginDate,DateDiff返回負數。DateDiff可以計算按日、時等單位計算時間差。

『陸』 MS SQL Server 中如何計算時間差

正常的話,算時間差的秒數是用datediff函數

比如
select datediff(s,'2013-01-07','2013-04-01')
這個就是算2013年4月1號到2013年1月7號之間的秒數

但是你說各個時間的時間差是什麼意思
後邊一行減前邊一行嗎?
還有你是mssql的哪個版本?

『柒』 ORACEL sql語句 兩時間欄位求差

兩個Date類型欄位:START_DATE,END_DATE,計算這兩個日期的時間差(分別以天,小時,分鍾,秒,毫秒):

天:

ROUND(TO_NUMBER(END_DATE - START_DATE))

小時:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24)

分鍾:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60)

秒:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60)

毫秒:

ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000)

Oracle計算時間差函數 2008-08-20 10:00 兩個Date類型欄位:START_DATE,END_DATE,計算這兩個日期的時間差(分別以天,小時,分鍾,秒,毫秒): 天: ROUND(TO_NUMBER(END_DATE - START_DATE)) 小時: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24) 分鍾: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60) 秒: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60) 毫秒: ROUND(TO_NUMBER(END_DATE - START_DATE) * 24 * 60 * 60 * 1000)

外加to_date與to_char函數:

ORACLE中:
select to_date('2007-06-28 19:51:20','yyyy-MM-dd HH24:mi:ss') from al;
一般SQL中:
select to_date('2007-06-28 19:51:20','yyyy-MM-dd HH:mm:ss') from al;
區別:
1、HH修改為HH24。
2、分鍾的mm修改為mi。

24 小時的形式顯示出來要用 HH24

select to_char(sysdate,'yyyy-MM-dd HH24:mi:ss') from al;

select to_date('2005-01-01 13:14:20','yyyy-MM-dd HH24:mi:ss') from al;

to_date() function

1. 日期格式參數 含義說明

D 一周中的星期幾

DAY 天的名字,使用空格填充到 9 個字元

DD 月中的第幾天

DDD 年中的第幾天

DY 天的簡寫名

IW ISO 標準的年中的第幾周

IYYY ISO 標準的四位年份

YYYY 四位年份

YYY,YY,Y 年份的最後三位,兩位,一位

HH 小時,按 12 小時計

HH24 小時,按 24 小時計

MI 分

SS 秒

MM 月

Mon 月份的簡寫

Month 月份的全名

W 該月的第幾個星期

WW 年中的第幾個星期 1. 日期時間間隔操作

當前時間減去 7 分鍾的時間

select sysdate,sysdate - interval '7' MINUTE from al

當前時間減去 7 小時的時間

select sysdate - interval '7' hour from al

當前時間減去 7 天的時間

select sysdate - interval '7' day from al

當前時間減去 7 月的時間

select sysdate,sysdate - interval '7' month from al

當前時間減去 7 年的時間

select sysdate,sysdate - interval '7' year from al

時間間隔乘以一個數字

select sysdate,sysdate - 8 *interval '2' hour from al

2. 日期到字元操作

select sysdate,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from al

select sysdate,to_char(sysdate,'yyyy-mm-dd hh:mi:ss') from al

select sysdate,to_char(sysdate,'yyyy-ddd hh:mi:ss') from al

select sysdate,to_char(sysdate,'yyyy-mm iw-d hh:mi:ss') from al

參考 oracle 的相關關文檔 (ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)

3. 字元到日期操作

select to_date('2003-10-17 21:15:37','yyyy-mm-dd hh24:mi:ss') from al

具體用法和上面的 to_char 差不多。

4.TO_NUMBER
使用TO_NUMBER函數將字元轉換為數字
TO_NUMBER(char[, '格式'])

數字格式格式
9 代表一個數字
0 強制顯示0
$ 放置一個$符
L 放置一個浮動本地貨幣符
. 顯示小數點
, 顯示千位指示符

oracle中的to_date參數含義

1.日期格式參數含義說明
D 一周中的星期幾
DAY 天的名字,使用空格填充到9個字元
DD 月中的第幾天
DDD 年中的第幾天
DY 天的簡寫名
IW ISO標準的年中的第幾周
IYYY ISO標準的四位年份
YYYY 四位年份
YYY,YY,Y 年份的最後三位,兩位,一位
HH 小時,按12小時計
HH24 小時,按24小時計
MI 分
SS 秒
MM 月
Mon 月份的簡寫
Month 月份的全名
W 該月的第幾個星期
WW 年中的第幾個星期 1.日期時間間隔操作
當前時間減去7分鍾的時間
select sysdate,sysdate - interval 』7』 MINUTE from al
當前時間減去7小時的時間
select sysdate - interval 』7』 hour from al
當前時間減去7天的時間
select sysdate - interval 』7』 day from al
當前時間減去7月的時間
select sysdate,sysdate - interval 』7』 month from al
當前時間減去7年的時間
select sysdate,sysdate - interval 』7』 year from al
時間間隔乘以一個數字
select sysdate,sysdate - 8 *interval 』2』 hour from al
2.日期到字元操作
select sysdate,to_char(sysdate,』yyyy-mm-dd hh24:mi:ss』) from al
select sysdate,to_char(sysdate,』yyyy-mm-dd hh:mi:ss』) from al
select sysdate,to_char(sysdate,』yyyy-ddd hh:mi:ss』) from al
select sysdate,to_char(sysdate,』yyyy-mm iw-d hh:mi:ss』) from al
參考oracle的相關關文檔(ORACLE901DOC/SERVER.901/A90125/SQL_ELEMENTS4.HTM#48515)
3. 字元到日期操作
select to_date(』2003-10-17 21:15:37』,』yyyy-mm-dd hh24:mi:ss』) from al
具體用法和上面的to_char差不多。
4. trunk/ ROUND函數的使用
select trunc(sysdate ,』YEAR』) from al
select trunc(sysdate ) from al
select to_char(trunc(sysdate ,』YYYY』),』YYYY』) from al
5.oracle有毫秒級的數據類型
--返回當前時間 年月日小時分秒毫秒
select to_char(current_timestamp(5),』DD-MON-YYYY HH24:MI:SSxFF』) from al;
--返回當前時間的秒毫秒,可以指定秒後面的精度(最大=9)
select to_char(current_timestamp(9),』MI:SSxFF』) from al;
6.計算程序運行的時間(ms)
declare
type rc is ref cursor;
l_rc rc;
l_mmy all_objects.object_name%type;
l_start number default dbms_utility.get_time;
begin
for I in 1 .. 1000 loop
open l_rc for 'select object_name from all_objects '|| 'where object_id = ' || i;
fetch l_rc into l_mmy;
close l_rc;
end loop;
dbms_output.put_line ( round( (dbms_utility.get_time-l_start)/100, 2 ) ||' seconds ...' );
end;

『捌』 請問mysql的sql中如何計算兩個datetime的差,精確到小時,謝謝



TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)

返回日期或日期時間表達式datetime_expr1和datetime_expr2the之間的整數差。
其結果的單位由interval參數給出。該參數必須是以下值的其中一個:

FRAC_SECOND表示間隔是毫秒
SECOND秒
MINUTE分鍾
HOUR小時
DAY天
WEEK星期
MONTH月
QUARTER季度
YEAR年SELECT'年'AS`日期部分`,TIMESTAMPDIFF(YEAR,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'季度'AS`日期部分`,TIMESTAMPDIFF(QUARTER,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'月'AS`日期部分`,TIMESTAMPDIFF(MONTH,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'日'AS`日期部分`,TIMESTAMPDIFF(DAY,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'周'AS`日期部分`,TIMESTAMPDIFF(WEEK,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'時'AS`日期部分`,TIMESTAMPDIFF(HOUR,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'分'AS`日期部分`,TIMESTAMPDIFF(MINUTE,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
UNIONALL
SELECT'秒'AS`日期部分`,TIMESTAMPDIFF(SECOND,'2012-12-21',CURRENT_TIMESTAMP())AS`數值`
;


+----------+----------+
|日期部分|數值|
+----------+----------+
|年|1|
|季度|4|
|月|12|
|日|388|
|周|55|
|時|9328|
|分|559737|
|秒|33584279|
+----------+----------+
8rowsinset(0.00sec)


mysql>selectCURRENT_TIMESTAMP();
+---------------------+
|CURRENT_TIMESTAMP()|
+---------------------+
|2014-01-1316:58:17|
+---------------------+
1rowinset(0.00sec)

『玖』 SQL計算時間差

語法:DATEDIFF(開始時間,結束時間)

釋義:DATEDIFF可以計算開始時間與結束時間的時間差,結果是天數

栗子:

語法:TIMESTAMPDIFF(時間粒度,開始時間,結束時間)

釋義:(1)時間粒度參數:

                   2/SECOND--秒:計算開始時間與結束時間相差的秒數。

                   4/MINUTE--分:計算開始時間與結束時間相差多少分鍾。

                   8/HOUR--小時:計算開始時間與結束時間相差多少小時。

                   16/DAY--天:計算開始時間與結束時間相差的天數。

                   32/WEEK--周:計算開始時間與結束時間相差的周數。

                   64/MONTH--月:計算開始時間與結束時間相差多少月。

                  128/QUARTER--季:計算開始時間與結束時間相差的季度數。

                   256/YEAR--年:計算開始時間與結束時間相差的年數。

(2)開始時間:需要計算時間差的開始時間,參數格式需要為時間格式。

(3)結束時間:需要計算時間差的結束時間,參數格式需要為時間格式。

栗子:

『拾』 SQL 計算時間差問題,要精確到天小時分鍾.

什麼資料庫啊?

sqlserver

selectcast(floor(datediff(minute,時間1,時間2)/1440)asvarchar)+'天'+

cast(floor((datediff(minute,時間1,時間2)%1440)/60)asvarchar)+'小時'+

cast(((datediff(minute,時間1,時間2))-

(floor(datediff(minute,時間1,時間2)/1440)*1440)-

(floor((datediff(minute,時間1,時間2)%1440)/60)*60))asvarchar)+'分'

from表名

剛才測試了一下:結果如下

有問題歡迎追問