- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个包含两个日期时间列的 MySQL 表。我想创建一个新生成的列,其中包含两个日期时间列的时间差。我正在使用 MySQL 函数TIME_TO_SEC
将差异转换为秒。
奇怪的是,有些行返回 NULL,我无法理解为什么。这是表格的前 25 行..
class_session_id starts_on ends_on session_time_computed
8 2014-12-24 03:35:47 2014-12-24 05:07:33 NA
9 2014-12-24 05:50:37 2014-12-24 07:10:07 NA
10 2014-12-24 07:18:51 2014-12-24 08:52:27 NA
11 2014-12-19 09:00:41 2014-12-19 10:35:54 5713
12 2014-12-19 10:45:29 2014-12-19 11:55:48 4219
13 2014-12-24 12:00:00 2014-12-24 14:00:00 7200
14 2014-12-24 14:32:10 2014-12-24 14:47:18 908
15 2014-12-24 14:48:13 2014-12-25 08:29:51 NA
16 2014-12-15 04:06:13 2014-12-15 04:20:41 868
17 2014-12-15 07:09:27 2014-12-15 08:20:40 4273
18 2014-12-15 06:42:28 2014-12-15 06:51:43 555
28 2014-11-25 11:18:00 2014-11-25 09:30:00 NA
29 2014-11-27 10:18:00 2014-11-27 11:30:00 4320
30 2014-11-26 08:18:00 2014-11-26 09:30:00 4320
34 2015-01-08 10:41:52 2015-01-08 11:00:00 3528
37 2014-12-02 12:44:36 2014-12-02 14:44:00 NA
49 2014-11-02 12:44:00 2014-11-02 14:44:00 7200
54 2014-12-07 07:05:35 2014-12-07 07:50:00 NA
55 2014-12-07 10:00:00 2014-12-07 11:00:00 3600
56 2014-11-12 12:57:00 2014-11-12 17:00:00 16980
82 2014-12-05 14:29:18 2014-12-05 16:00:00 NA
83 2014-12-05 16:29:18 2014-12-05 17:00:00 NA
84 2014-12-05 17:49:17 2014-12-05 18:25:00 NA
85 2014-12-06 15:00:17 2014-12-06 16:00:00 NA
87 2014-12-06 16:25:00 2014-12-06 16:59:00 2040`
我使用以下脚本生成最后一列。
ALTER TABLE class_sessions_archive
MODIFY COLUMN session_time_computed int(11) AS (TIME_TO_SEC(ends_on - starts_on));
为什么我得到这么多行的 NULL 结果?这是表的结构:
Field Type Null Key Default Extra
class_session_id int(11) NO PRI <NA> auto_increment
class_id int(11) NO MUL <NA>
room_id int(11) NO MUL <NA>
teacher_id int(11) NO MUL <NA>
starts_on datetime NO <NA>
ends_on datetime NO <NA>
session_state int(11) NO MUL <NA>
stud_attended int(100) YES <NA>
total_stud_registered int(11) NO 0
session_time int(11) NO 0
gi_num int(11) NO 0
gi_den int(11) NO 0
pi int(11) NO 0
session_time_computed int(11) YES <NA> VIRTUAL GENERATED
最佳答案
现在我想了一下,您通常在减去之前将时间转换为秒:
ALTER TABLE class_sessions_archive
MODIFY COLUMN session_time_computed int(11) AS
(TO_SECONDS(ends_on) - TO_SECONDS(starts_on));
否则,您将受到 time
数据类型的值范围的限制 - 这可能就是您得到 NULL
的原因。
关于mysql - 为什么使用 MySQL 函数 TIME_TO_SEC 得到 NULL 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45785530/
我正在运行以下 MySQL 脚本,它抛出一个错误,有人能告诉我出了什么问题吗? "ALTER TABLE class_sessions_archive MODIFY COLUMN session_ti
我目前有使用 time(6) 类型的字段。值类似于 00:01:03.125000。当我使用 SELECT TIME_TO_SEC("00:01:03.125000") 我希望它给我 63.125 或
我正在使用 mySQL 我有一个计算,它以分钟为单位返回totalUTinMinutes列的值,我希望它转换回小时,列“T”,但我得到了这个结果而不是08:09:[这里有一些秒]。 任何建议或解决方案
如何在 laravel eloquent 中使用 time_to_sec() ? 这是我在 sql 中的查询: select time_to_sec('00:02:00') 有什么方法可以在 lara
我们可以使用 where 子句运行 mysql 查询,如下所示 TIME_TO_SEC(TIMEDIFF('2012-08-22 06:25:12',lastEventTime)) >70 我们现在需
我试图在导入文件后重新排序表,但在此查询中遇到 mysql 语法错误: ALTER TABLE tablename ORDER BY str_to_date(date, '%m/%d/%Y'), ti
hibernate HQL 中是否有任何方法与 MySQL 数据库中的 TIME_TO_SEC 具有相同的功能。 问这个问题是因为我想在我的 Oracle 数据库中使用此 HQL 查询: "selec
我有一个包含两个日期时间列的 MySQL 表。我想创建一个新生成的列,其中包含两个日期时间列的时间差。我正在使用 MySQL 函数TIME_TO_SEC 将差异转换为秒。 奇怪的是,有些行返回 NUL
我是一名优秀的程序员,十分优秀!