mysql - 在 mysql 日期时间字段中存储持续时间/时间的可能性

标签 mysql datetime time

由于各种原因,我有一个字段需要接受各种日期/时间输入。虽然我可以使用 DATETIME 类型来存储日期和日期时间,例如:

  • 2014-01-01 00:00:00(日期)
  • 2014-01-01 01:20:23(日期时间)

我不知道如何存储时间。是否有可能以任何方式,或者我是否需要存储某种 hack-value 用于在应用程序中进行解析,例如:

  • 0000-01-01 05:00:00(解析为05:00:00 --> 时间)

或者,是否有更好的存储方式?

比如我目前做的sql是这样的:

select if(vd=date(vd), date(vd), 
       if(date(vd)='0000-01-01', right(vd,8), 
       vd)) formatted_vd, vd from spread

formatted_vd    vd
2014-01-01      2014-01-01 00:00:00
2014-01-01      01:12:23    2014-01-01 01:12:23
05:00:00        0000-01-01 05:00:00

最佳答案

虽然 MySQL 实际上是 have a TIME type ,大多数时候(没有双关语意),你不想使用它。相反,使用 DATETIME 通常是更好的选择。

也就是说,如果您有一个 DATETIME 值,并且出于某种原因您想要隔离时间部分,MySQL 提供了一个 TIME() 函数,它可以提取时间本身。

关于mysql - 在 mysql 日期时间字段中存储持续时间/时间的可能性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55740054/

相关文章:

php - 如何在sql中一起使用like和between?

c# - 从包含小数点和逗号毫秒分隔符的字符串转换为 DateTime

php - MySQL如何按日期时间格式按特定日期(星期一,星期二等)选择所有行

iphone - 进程的生命周期 ios

php - MySQL - WHERE、AND & OR 语法

php - 在 Laravel 5.1 中选择一个表中不存在于另一表中的所有记录

java - 每小时自动运行一次 Java 方法

php - 如何获取网站上相对时间的MySQL表的时间戳

MYSQL 服务器在 100 万条记录上运行查询非常慢

C++ 时间库和 Octave .oct 文件