请问mysql的sql中如何计算两个datetime的差,精确到小时,谢谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问mysql的sql中如何计算两个datetime的差,精确到小时,谢谢相关的知识,希望对你有一定的参考价值。
请问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) 参考技术A TIMESTAMPDIFF(interval,datetime_expr1,datetime_expr2)
www.2cto.com
说明:
返回日期或日期时间表达式datetime_expr1 和datetime_expr2the 之间的整数差。其结果的
单位由interval 参数给出。interval 的法定值同TIMESTAMPADD()函数说明中所列出的相同。
SELECT TIMESTAMPDIFF(MONTH,'2009-10-01','2009-09-01');
interval可是:
SECOND 秒 SECONDS
MINUTE 分钟 MINUTES
HOUR 时间 HOURS
DAY 天 DAYS
MONTH 月 MONTHS
YEAR 年 YEARS追问
不对啊,大哥,这个都是网上的,但是用不了啊?
追答报什么错误?
本回答被提问者和网友采纳 参考技术B 精确到小时select TIMESTAMPDIFF(Hour,'2014-01-01 14:00','2014-01-01 16:00');
精确到分钟
select TIMESTAMPDIFF(MINUTE,'2014-01-01 14:00','2014-01-01 16:00')
mysql: 如何计算指定日期到当前日期之间的天数
其中的指定日期取自某数据表中的一个字段
1、首先,我们打开软件,需要创建一个控制台应用程序,在Main方法中用来获取并输出系统当前的日期,输入:DateTime now = DateTime.Now。
2、在visual studio中按F5就可以调试模式运行程序,这个时候,就可以看到当前的日期加时间都输出来了。
3、获取到了今天的日期,这个时候就可以使用DayOfWeek属性了。输入DayOfWeek week = now.DayOfWeek。
4、重新调试运行,就可以看到当前系统日期,以及星期几都输出来了。只不过星期输出来的是英文。
5、接着,在Program类的同级,添加一个新的静态类和静态方法,此处使用静态,仅仅只是为了方便调用。在这个方法中,接收开始、结束日期,然后计算出两个日期之间的工作日天数。
6、在Main方法中,直接通过静态类的静态方法调用,并将结果输出到控制台窗口。
7、重新调试模式运行,就可以看到指定传入的日期之间的工作日天数都计算出来了。
参考技术A datediffDATEDIFF(expr,expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。
mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
-> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
-> -31
select Datediff(列名,列名) as datenum from 表名本回答被提问者采纳 参考技术B datediff
DATEDIFF(expr,expr2)
DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2 为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。 参考技术C select datediff(day,'2008.12.31',getdate()) 参考技术D mysql> SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');
-> 1
mysql> SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');
-> -31
select Datediff(列名,列名) as datenum from 表名
以上是关于请问mysql的sql中如何计算两个datetime的差,精确到小时,谢谢的主要内容,如果未能解决你的问题,请参考以下文章