MySql如何通过TRUNCATE将 "秒" 转换为天时分秒

1:JavaScript或者jquery处理时间

      很多时候,我们在处理将秒格式化为天时分秒的时候都是通过JavaScript或者jquery在前端来进行实现,今天特意想了一下,如果可以直接在查询数据的时候直接处理好的话那岂不是很完美。下面给出一下jQuery处理的方法代码

//时间换算
function time(obj){
	var d=0;
	var m=0;
	var s=0;
	var str = "";
	if(obj>0){
		d=Math.floor(obj/1000/60/60/24);
		h=Math.floor(obj/1000/60/60%24);
		m=Math.floor(obj/1000/60%60);
		s=Math.floor(obj/1000%60);
		if(h>0){
			h = h+"小时";
			str = str + h;
		}
		if(m>0){
			m = m+"分钟";
			str = str + m;
		}
		if(s>0){
			s =  s+"秒";
			str = str + s;
		}	
	}else{
		str = "0";
	}
	return str;
}

  2:MySql使用语句处理时间

    在处理时间的时候,需要使用到一个CONVERT() 函数,通过这个函数来指定输出的内容格式,下面是官方给的实际解析和例子

   CONVERT() 函数是把日期转换为新数据类型的通用函数。

   CONVERT() 函数可以用不同的格式显示日期/时间数据。

语法

CONVERT(data_type(length),expression,style)

描述
data_type(length) 规定目标数据类型(带有可选的长度)。
expression 规定需要转换的值。
style 规定日期/时间的输出格式。

下面的表格展示了 datetime 或 smalldatetime 转换为字符数据的 style 值:


(世纪 yy)

(世纪 yyyy)
输入/输出 标准
- 0 or 100 mon dd yyyy hh:miAM (or PM) Default
1 101 mm/dd/yy USA
2 102 yy.mm.dd ANSI
3 103 dd/mm/yy British/French
4 104 dd.mm.yy German
5 105 dd-mm-yy Italian
6 106 dd mon yy  
7 107 Mon dd, yy  
8 108 hh:mm:ss  
- 9 or 109 mon dd yyyy hh:mi:ss:mmmAM (or PM) Default+millisec
10 110 mm-dd-yy USA
11 111 yy/mm/dd Japan
12 112 yymmdd ISO
- 13 or 113 dd mon yyyy hh:mi:ss:mmm (24h)  
14 114 hh:mi:ss:mmm (24h)  
- 20 or 120 yyyy-mm-dd hh:mi:ss (24h)  
- 21 or 121 yyyy-mm-dd hh:mi:ss.mmm (24h)  
- 126 yyyy-mm-ddThh:mi:ss.mmm (no spaces) ISO8601
- 130 dd mon yyyy hh:mi:ss:mmmAM Hijiri
- 131 dd/mm/yy hh:mi:ss:mmmAM Hijiri

实例

下面的脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获得当前的日期/时间:

CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),10)
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),6)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)

结果如下所示:

Nov 04 2011 11:45 PM
11-04-11
11-04-2011
04 Nov 11
04 Nov 2011
04 Nov 2011 11:45:34:243

来吧,看看我最后的sql语句吧

set @time = 7205; -- (SELECT SUM(call_duration) from orderRecord);
SELECT 
CONCAT(convert(TRUNCATE(@time/(24*3600), 0), char), '天') LAST_DAY,
CONCAT(convert(TRUNCATE(@time%(24*3600)/3600, 0), char), '小时') LAST_HOUR,
CONCAT(convert(TRUNCATE((@time/60), 0), char), '分') LAST_MINUTE,
CONCAT(convert(TRUNCATE((@time)%60, 0), char), '秒') LAST_SECOND

效果图如下所示,其中的天时分秒 可以不用写,在组装显示的时候判断显示就好

发布了82 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/tanqingfu1/article/details/104915284