SQL:合并两列中的 DATEDIFF 并用这个时间更新 table
SQL: Combine DATEDIFF from two columns and update the table with this time
我最近开始使用 SQL 所以我还在学习,这也是我的第一个问题,所以提前抱歉。
我有一个 Table、Messages_History
,其中包含三列 tmStartTime
、tmEndTime
和 tmTotal
,所有数据类型均为 DATETIME2
。
tmStartTime tmEndTime
2018-12-18 13:38:02.054 2018-12-18 13:39:56.944
2018-12-18 13:20:06.927 2018-12-18 13:42:02.024
2018-12-18 13:10:51.450 2018-12-18 13:36:34.239
2018-12-18 13:09:54.005 2018-12-18 13:19:46.741
2018-12-18 13:05:40.865 2018-12-18 13:36:48.373
2018-12-18 13:04:05.028 2018-12-18 13:08:12.073
这可能超过 10,000 行。
我想计算 day hh:mm:ss.xxx
中 tmStartTime
和 tmEndTime
列之间的差异,我该怎么做?
我已经使用 DATEDIFF(datepart, tmStartTime, tmEndTime) name,
单独计算日期部分并将它们显示在 table 中。但是我如何将它们组合在一列中并使用这些值更新 tmTotal
列?
UPDATE Messages_History
SET tmTotals = DATEDIFF (second, tmStartTime, tmEndTime); <--- this was to try updating a column with only seconds datepart.
SELECT
MH.nId,
MH.tmStartTime StartTime,
MH.tmEndTime EndTime,
MH.tmTotal Total,
MH.tmTotals Totals,
FROM Messages_History MH
如何合并 DATEDIFF
以便更新我的 table 列 Column_Total
?
要更新 table,您不需要像现在这样 SELECT
。您可以像下面的简单查询一样实现更新。
UPDATE Messages_History
SET tmTotals =
CONVERT(varchar, DATEADD(second, DATEDIFF(second, tmStartTime, tmEndTime), 0), 108)
FROM Messages_History
我最近开始使用 SQL 所以我还在学习,这也是我的第一个问题,所以提前抱歉。
我有一个 Table、Messages_History
,其中包含三列 tmStartTime
、tmEndTime
和 tmTotal
,所有数据类型均为 DATETIME2
。
tmStartTime tmEndTime
2018-12-18 13:38:02.054 2018-12-18 13:39:56.944
2018-12-18 13:20:06.927 2018-12-18 13:42:02.024
2018-12-18 13:10:51.450 2018-12-18 13:36:34.239
2018-12-18 13:09:54.005 2018-12-18 13:19:46.741
2018-12-18 13:05:40.865 2018-12-18 13:36:48.373
2018-12-18 13:04:05.028 2018-12-18 13:08:12.073
这可能超过 10,000 行。
我想计算 day hh:mm:ss.xxx
中 tmStartTime
和 tmEndTime
列之间的差异,我该怎么做?
我已经使用 DATEDIFF(datepart, tmStartTime, tmEndTime) name,
单独计算日期部分并将它们显示在 table 中。但是我如何将它们组合在一列中并使用这些值更新 tmTotal
列?
UPDATE Messages_History
SET tmTotals = DATEDIFF (second, tmStartTime, tmEndTime); <--- this was to try updating a column with only seconds datepart.
SELECT
MH.nId,
MH.tmStartTime StartTime,
MH.tmEndTime EndTime,
MH.tmTotal Total,
MH.tmTotals Totals,
FROM Messages_History MH
如何合并 DATEDIFF
以便更新我的 table 列 Column_Total
?
要更新 table,您不需要像现在这样 SELECT
。您可以像下面的简单查询一样实现更新。
UPDATE Messages_History
SET tmTotals =
CONVERT(varchar, DATEADD(second, DATEDIFF(second, tmStartTime, tmEndTime), 0), 108)
FROM Messages_History