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 100mon dd yyyy hh:miAM (or PM)Default
1101mm/dd/yyUSA
2102yy.mm.ddANSI
3103dd/mm/yyBritish/French
4104dd.mm.yyGerman
5105dd-mm-yyItalian
6106dd mon yy 
7107Mon dd, yy 
8108hh:mm:ss 
-9 or 109mon dd yyyy hh:mi:ss:mmmAM (or PM)Default+millisec
10110mm-dd-yyUSA
11111yy/mm/ddJapan
12112yymmddISO
-13 or 113dd mon yyyy hh:mi:ss:mmm (24h) 
14114hh:mi:ss:mmm (24h) 
-20 or 120yyyy-mm-dd hh:mi:ss (24h) 
-21 or 121yyyy-mm-dd hh:mi:ss.mmm (24h) 
-126yyyy-mm-ddThh:mi:ss.mmm (no spaces)ISO8601
-130dd mon yyyy hh:mi:ss:mmmAMHijiri
-131dd/mm/yy hh:mi:ss:mmmAMHijiri

 


实例

下面的脚本使用 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

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

 

posted @ 2022-08-04 19:13  码奴生来只知道前进~  阅读(615)  评论(0编辑  收藏  举报