mysql - 有没有办法在计算时间间隔时不改变 varchar 的类型?

标签 mysql sql select varchar

“length”列中的数据类型为 varchar。 我需要计算音频的平均长度。

我需要将数据类型更改为日期时间还是有办法不这样做?

我担心,如果我这样做,我的值(value)观可能会变得不正确。

谢谢!

示例

Length
22:32:00
11:22:12
10:00:00

最佳答案

您应该将数据类型更改为时间,因为在当前格式下,您无法在不将数据转换为时间的情况下对数据进行任何时间计算。

如mysql手册上的time data type说:

TIME type can be used not only to represent a time of day (which must be less than 24 hours), but also elapsed time or a time interval between two events (which may be much greater than 24 hours, or even negative).

如果您担心由于格式不正确而丢失一些数据,请使用 str_to_date() 测试 varchar 到时间的转换。功能。无论它在使用正确掩码的情况下返回 null,您的数据格式都是错误的。

关于mysql - 有没有办法在计算时间间隔时不改变 varchar 的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52143294/

相关文章:

mysql - 未使用的数据库会以任何方式损害 MySQL 服务器性能吗?

php - Laravel/MySQL 在 where 子句中使用计算别名列

sql - Oracle中如何选择一个变量的值?

php - 如何保存用户上传的内容?

mysql - 为什么在运行复杂查询时出现 "array_map(): Argument #2 should be an array"错误?

sql - 添加聚合列导致GROUP BY错误

mysql - 在sql中按查询分组

php - 使用 id 功能编辑产品页面

mysql - 条件 SQL SELECT - 当返回集为空时,执行另一个 SELECT?

tsql - t-sql 与 与 与