monthdiff oracle_timestampdiff

2022-08-11 13:14:47 浏览数 (1)

大家好,又见面了,我是你们的朋友全栈君。

营销树今天精心准备的是《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))

展开

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/130493.html原文链接:https://javaforall.cn

0 人点赞