求一条sql,谢谢大家!

David_jiahuan 2017-12-07 05:43:51
start_time (标红的2) 和 end_time(标红的1) 两个字段都是 varchar 类型的;
现在想用end_time 减去 start_time 的值得到分钟数;
填写到 parking_time (标红的3)字段中;

...全文
101 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小小爱好者 2017-12-08
  • 打赏
  • 举报
回复
引用 1 楼 qq_37170555 的回复:

create table test_tab(
start_time varchar(200),
end_time varchar(200),
parking_time BIGINT
);
insert into test_tab values('2017120809312504','2017120809362504',null)

SELECT
	*, round(
		(
			UNIX_TIMESTAMP(cast(end_time AS datetime)) - UNIX_TIMESTAMP(cast(start_time AS datetime))
		) / 60
	) AS cnt_min
FROM
	test_tab
楼上做得对,我回答前没有注意看 一条语句
UPDATE table名
SET parking_time = round((UNIX_TIMESTAMP(cast(end_time AS datetime)) - UNIX_TIMESTAMP(cast(start_time AS datetime))) / 60) ;
小小爱好者 2017-12-08
  • 打赏
  • 举报
回复
告诉你个思路吧,自己动手,将 startTime 和 endTime 转换为时间戳,然后运算 ,将时间戳运算结果换算为分钟就OK了
听雨停了 2017-12-08
  • 打赏
  • 举报
回复

create table test_tab(
start_time varchar(200),
end_time varchar(200),
parking_time BIGINT
);
insert into test_tab values('2017120809312504','2017120809362504',null)

SELECT
*, round(
(
UNIX_TIMESTAMP(cast(end_time AS datetime)) - UNIX_TIMESTAMP(cast(start_time AS datetime))
) / 60
) AS cnt_min
FROM
test_tab

David_jiahuan 2017-12-08
  • 打赏
  • 举报
回复
引用 3 楼 lht80053623 的回复:
[quote=引用 1 楼 qq_37170555 的回复:]

create table test_tab(
start_time varchar(200),
end_time varchar(200),
parking_time BIGINT
);
insert into test_tab values('2017120809312504','2017120809362504',null)

SELECT
	*, round(
		(
			UNIX_TIMESTAMP(cast(end_time AS datetime)) - UNIX_TIMESTAMP(cast(start_time AS datetime))
		) / 60
	) AS cnt_min
FROM
	test_tab
楼上做得对,我回答前没有注意看 一条语句
UPDATE table名
SET parking_time = round((UNIX_TIMESTAMP(cast(end_time AS datetime)) - UNIX_TIMESTAMP(cast(start_time AS datetime))) / 60) ;
[/quote] 谢谢您!
David_jiahuan 2017-12-08
  • 打赏
  • 举报
回复
引用 1 楼 qq_37170555 的回复:

create table test_tab(
start_time varchar(200),
end_time varchar(200),
parking_time BIGINT
);
insert into test_tab values('2017120809312504','2017120809362504',null)

SELECT
	*, round(
		(
			UNIX_TIMESTAMP(cast(end_time AS datetime)) - UNIX_TIMESTAMP(cast(start_time AS datetime))
		) / 60
	) AS cnt_min
FROM
	test_tab
谢谢您!

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧