Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何使用SQL查询在表中的两个字段之间执行减法_Mysql_Sql - Fatal编程技术网

Mysql 如何使用SQL查询在表中的两个字段之间执行减法

Mysql 如何使用SQL查询在表中的两个字段之间执行减法,mysql,sql,Mysql,Sql,我想使用SQL查询显示从两个不同列到第三列的两个值的减法 这是表结构: ------------------------------------ id | subject | Time1 | Time2| Time3 ------------------------------------ 1 | String1 | 50 | 78 | 2 | String2 | 60 | 99 | 3 | | | | 如果Time1和Ti

我想使用SQL查询显示从两个不同列到第三列的两个值的减法

这是表结构:

------------------------------------
id | subject | Time1 | Time2| Time3
------------------------------------
1  | String1 | 50    |  78  | 
2  | String2 | 60    |  99  |  
3  |         |       |      |
如果Time1和Time2都有数据并存储在Time3中,我想从Time1中减去Time2

输出应该像

------------------------------------
id | subject | Time1 | Time2| Time3
------------------------------------
1  | String1 | 50    |  78  |  28
2  | String2 | 60    |  99  |  39
3  |         |       |      |

谢谢

假设
Time1
Time2
是数字列,您可以使用简单的减法:

SELECT
    id
    ,subject
    ,Time1
    ,Time2
    ,Time2-Time1 as Time3
FROM tbl
select id, subject, Time1, Time3, Time2 - Time1 as Time3 from myTable

假设
Time1
Time2
是数字列,您可以使用简单的减法:

select id, subject, Time1, Time3, Time2 - Time1 as Time3 from myTable
试试这个

select id, subject, Time1, Time2, Time2-Time1 as Time3  from mytable
试试这个

select id, subject, Time1, Time2, Time2-Time1 as Time3  from mytable

这将检查
Time1
Time2
中是否存在数据:如果有足够的数据,
Time3=Time2-Time1
;否则为
null

select id, subject, Time1, Time2, 
   ifnull(Time1, null, ifnull(Time2, null, Time2 - Time1)) as Time3 
from myTable

这将检查
Time1
Time2
中是否存在数据:如果有足够的数据,
Time3=Time2-Time1
;否则为
null

select id, subject, Time1, Time2, 
   ifnull(Time1, null, ifnull(Time2, null, Time2 - Time1)) as Time3 
from myTable
试试这个

SELECT *, `Time2`-`Time1` AS `Time3` FROM `tablename`
SELECT id, subject, Time1, Time2, CONCAT(Time2 - Time1) AS Time3 FROM tabel
试试这个

SELECT *, `Time2`-`Time1` AS `Time3` FROM `tablename`
SELECT id, subject, Time1, Time2, CONCAT(Time2 - Time1) AS Time3 FROM tabel

如果Time1和Time2是datetime字段,那么您应该在MySQL中使用
TIMEDIFF
函数来正确格式化Time3字段

SELECT id, subject, Time1, Time2, TIMEDIFF(Time1, Time2) as Time3 
  FROM tbl

如果Time1和Time2是datetime字段,那么您应该使用MySQL中的
TIMEDIFF
函数来正确设置Time3字段的格式

SELECT id, subject, Time1, Time2, TIMEDIFF(Time1, Time2) as Time3 
  FROM tbl
试试这个

SELECT *, `Time2`-`Time1` AS `Time3` FROM `tablename`
SELECT id, subject, Time1, Time2, CONCAT(Time2 - Time1) AS Time3 FROM tabel
试试这个

SELECT *, `Time2`-`Time1` AS `Time3` FROM `tablename`
SELECT id, subject, Time1, Time2, CONCAT(Time2 - Time1) AS Time3 FROM tabel

@克丽丝:那么我的助理应该工作了。试试看。如果我的回答有帮助,请接受正确答案。当然,我还没有检查解决方案;将检查并更新。如果Time1/2字段中的任何一个为空,我不想进行计算。@kris那么我的asnwer应该可以工作。试试看。如果我的回答有帮助,请接受正确答案。当然,我还没有检查解决方案;将检查并更新。如果任何Time1/2字段为空,我不想进行计算。请编辑以格式化代码,好吗?突出显示所有代码并按Ctrl+K是否可以编辑以格式化代码?高亮显示所有代码并按Ctrl+K