monthdiff oracle_timestampdiff
營銷樹今天精心準備的是《timestampdiff》,下面是詳解!
mysql兩個時間(我有兩個字段是datetime類型)相減返...
在mysql中,這種計算可用TIMESTAMPDIFF函數來解決,但是解決過程中需要將數據多次加工。
1、創建測試表及插入測試數據:create?table?test
(time1?datetime,
time2?datetime)
insert?into?test?values?('2015-04-03?17:01:09','2015-06-03?22:09:30')
2、目前要結算time2和time1的時間差,用如下語句:select?round(TIMESTAMPDIFF(second,time1,time2)/3600,2)?from?test
結果如圖:
解讀:
首先,先用select?TIMESTAMPDIFF(second,time1,time2)?from?test
來計算兩個時間之間的秒數差。
然后,得到的結果除以3600,即為這兩個時間之間的小時數。
最后因為要求保留2位小數,則通過round函數,四舍五入,取出2位小數即可。
DB2中兩時間相減求之前相差多少月?
SELECT
timestampdiff (256, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "間隔年",
timestampdiff (128, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "間隔季度",
timestampdiff (64, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "間隔月",
timestampdiff (32, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "間隔周",
timestampdiff (16, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "間隔日",
timestampdiff (8, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "間隔時",
timestampdiff (4, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "間隔分",
timestampdiff (2, char(timestamp('2013-12-30 20:30:30') - timestamp('2001-09-26 15:24:23'))) AS "間隔秒"
FROM SYSIBM.SYSDUMMY1;
間隔年 間隔季度 間隔月 間隔周 間隔日 間隔時 間隔分 間隔秒
----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
12 49 147 637 4474 107381 6442866 386571967
1 條記錄已選擇。
oracle中有沒有類似于db2的timestampdiff
在Oracle里用減號“-”直接就是求兩個日期時間變量或者表列的差值,只是要看你timestampdiff的第一個參數是求“月、天、時、分”還是“秒、微秒”,這個要略有變通,天數是最直接的。
請教db2的timestampdiff函數計算天數差不對的問題
1. 不夠3天
values TIMESTAMPDIFF(16,CHAR(TIMESTAMP('2001-09-29-11.25.42.483219')-TIMESTAMP('2001-09-26-12.07.58.065497')))
1
-----------
2
1 record(s) selected.
2. 夠3天
values TIMESTAMPDIFF(16,CHAR(TIMESTAMP('2001-09-29-12.07.58.483219')-TIMESTAMP('2001-09-26-12.07.58.065497')))
1
-----------
3
1 record(s) selected.
Mysql TIMESTAMPDIFF函數求時間差的毫秒數問題
selectTIMESTAMPDIFF(frac_seconds,'2014-07-2311:17:00.123',now());失敗!...
select TIMESTAMPDIFF(frac_seconds,'2014-07-23 11:17:00.123',now());
失敗!
用SECOND 然后再除以1000是一樣的。低版本不支持FRAC_SECOND
derby 數據庫中 TIMESTAMPDIFF函數怎么用
TIMESTAMPDIFF is a JDBC escaped function, and is only accessible using the JDBC escape function syntax. The syntax you need is:
select {fn timestampdiff(SQL_TSI_WEEK, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP)} from demo.field;
TIMESTAMPDIFF( interval, timestampExpression1, timestampExpression2 )
三個參數,第二和第三個參數是timestamp類型的時間函數,第一個參數是(timestampExpression2-timestampExpression1)的時間差的表示單位,如SQL_TSI_SECOND是以秒為單位,返回兩個查詢參數的時間差。
1)interval的類型還有:SQL_TSI_DAY
、SQL_TSI_FRAC_SECOND、SQL_TSI_HOUR、SQL_TSI_MINUTE、SQL_TSI_MONTH、
SQL_TSI_QUARTER、SQL_TSI_SECOND、SQL_TSI_WEEK、SQL_TSI_YEAR
mysql兩個日期計算天數怎么算?
mysql>selectdatediff(now(),'1993-09-08');+------------------------------+|datediff(now(),'1993-09-08')|+------------------------------+|7842|+----------------------------...
mysql> select datediff(now(),'1993-09-08');
+------------------------------+
| datediff(now(),'1993-09-08') |
+------------------------------+
| 7842 |
+------------------------------+
結果為什么是7842?
展開
mysql兩個日期計算天數的計算有如下方式:
1、利用TO_DAYS函數
select to_days(now()) - to_days('19930908')
2、利用DATEDIFF函數
select datediff(now(),'19930908')
參數1 - 參數2 等于間隔天數
3、利用TIMESTAMPDIFF函數
計算兩日期時間之間相差的天數,秒數,分鐘數,周數,小時數,這里主要分享的是通過MySql內置的函數 TimeStampDiff() 實現。
函數 TimeStampDiff() 是MySQL本身提供的可以計算兩個時間間隔的函數,語法為:
TIMESTAMPDIFF(unit,datetime_expr1,datetime_expr2)
返回日期或日期時間表達式datetime_expr1 和datetime_expr2the 之間的整數差。其中unit單位有如下幾種,分別是:FRAC_SECOND (microseconds), SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR 。該參數具體釋義如下:
FRAC_SECOND?? 表示間隔是毫秒
SECOND?? 秒
MINUTE?? 分鐘
HOUR?? 小時
DAY?? 天
WEEK?? 星期
MONTH?? 月
QUARTER?? 季度
YEAR?? 年
例如:
#計算兩日期之間相差多少周
select timestampdiff(week,'2011-09-30','2015-05-04');
#計算兩日期之間相差多少天
select timestampdiff(day,'2011-09-30','2015-05-04');
在java中使用timestampdiff()函數
在java中的JDBC使用timestampdiff()函數(update表set字段1=''wheretimestampdiff(day,now(),日期字段)<=0and日期字段!=''),報以下錯誤com.mysql.jdbc.MysqlDataTruncation:Datatrunca...
在java中的JDBC使用timestampdiff()函數(update 表set 字段1='' where timestampdiff(day,now(),日期字段)<=0 and 日期字段!='' ),報以下錯誤com.mysql.jdbc.MysqlDataTruncation: Data truncation: Incorrect datetime value: '',字段里沒有空的數據,在MySQL-Front中能執行的,在java中就報錯,這個是怎么回事?
展開
日期字段里面沒有空的話,and 日期字段!=''這句去掉試試?
請問mysql的sql中如何計算兩個datetime的差,精確...
請問mysql的sql中如何計算兩個datetime的差,精確到小時,謝謝selectTIMESTAMPDIFF(MINUTES,offduty_date,onduty_date)testDatefrombao_dan_info我這樣寫sql,但是報錯,請高人指點...
請問mysql的sql中如何計算兩個datetime的差,精確到小時,謝謝
select TIMESTAMPDIFF(MINUTES,offduty_date,onduty_date) testDate from bao_dan_info
我這樣寫sql,但是報錯,請高人指點
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?`數值`
UNION?ALL
SELECT?'季度'??AS??`日期部分`,??TIMESTAMPDIFF(QUARTER,?'2012-12-21',?CURRENT_TIMESTAMP())?AS?`數值`
UNION?ALL
SELECT?'月'??AS??`日期部分`,??TIMESTAMPDIFF(MONTH,?'2012-12-21',?CURRENT_TIMESTAMP())?AS?`數值`
UNION?ALL
SELECT?'日'??AS??`日期部分`,??TIMESTAMPDIFF(DAY,?'2012-12-21',?CURRENT_TIMESTAMP())?AS?`數值`
UNION?ALL
SELECT?'周'??AS??`日期部分`,???TIMESTAMPDIFF(WEEK,?'2012-12-21',?CURRENT_TIMESTAMP())?AS?`數值`
UNION?ALL
SELECT?'時'??AS??`日期部分`,???TIMESTAMPDIFF(HOUR,?'2012-12-21',?CURRENT_TIMESTAMP())?AS?`數值`
UNION?ALL
SELECT?'分'??AS??`日期部分`,???TIMESTAMPDIFF(MINUTE,?'2012-12-21',?CURRENT_TIMESTAMP())?AS?`數值`
UNION?ALL
SELECT?'秒'??AS??`日期部分`,???TIMESTAMPDIFF(SECOND,?'2012-12-21',?CURRENT_TIMESTAMP())?AS?`數值`
;
+----------+----------+
|?日期部分?|?數值?????|
+----------+----------+
|?年???????|????????1?|
|?季度?????|????????4?|
|?月???????|???????12?|
|?日???????|??????388?|
|?周???????|???????55?|
|?時???????|?????9328?|
|?分???????|???559737?|
|?秒???????|?33584279?|
+----------+----------+
8?rows?in?set?(0.00?sec)
mysql>?select?CURRENT_TIMESTAMP();
+---------------------+
|?CURRENT_TIMESTAMP()?|
+---------------------+
|?2014-01-13?16:58:17?|
+---------------------+
1?row?in?set?(0.00?sec)
sql語句 時間相加
tableiduserIdnamestarttimeendtime1001張三2015-06-2516:05:592015-06-2516:09:592001張三2015-06-2111:05:592015-06-2113:12:593001張三2015-06-2413:05:592015-06-2415:09:594002李...
table
id userId name starttime endtime
1 001 張三 2015-06-25 16:05:59 2015-06-25 16:09:59
2 001 張三 2015-06-21 11:05:59 2015-06-21 13:12:59
3 001 張三 2015-06-24 13:05:59 2015-06-24 15:09:59
4 002 李四 2015-06-25 16:05:59 2015-06-25 16:09:59
5 002 李四 2015-06-21 11:05:59 2015-06-21 13:12:59
6 002 李四 2015-06-24 13:05:59 2015-06-24 15:09:59
查詢出
userId name 總時間
001 張三 xxxx-xx-xx xx:xx:xx
002 張三 xxxx-xx-xx xx:xx:xx
一條數據所用的時間 endtime -starttime
總時間是相同userid的所用時間相加求和
題主自己找到的方式
data 類型的 TIMEDIFF(BRIDGE_TIME,START_TIME)
像這“00:00:12”varchar類型的當作時間處理
SUM(TIME_TO_SEC(BRIDGE_DURATION))
展開
總結
以上是生活随笔為你收集整理的monthdiff oracle_timestampdiff的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python为什么说csv文件不存在_如
- 下一篇: 主成分分析法怎么提取图片中的字_在主成分