【发布时间】:2021-05-23 04:31:40
【问题描述】:
我需要将DateTime 数据保存在数据库中,并且需要建议以选择正确的 SQL 数据类型。
我想保存Start-DateTime 和End-DateTime。
随后我想直接在表格中输出Start-DateTime,并且我想输出开始和结束之间的持续时间。为了更好地想象,结果应该是这样的:
- 保存
Y-m-d H:i:s太少了。我还想要毫秒(小数点后 1 位)。 - 我的 PHP 应用程序支持 MySQL 和 Microsoft SQL-Server 作为目标数据库。数据类型应该很容易兼容两者。
我应该为Start-DateTime 和End-DateTime 列选择哪种SQL 数据类型?
非常感谢!
【问题讨论】:
-
不要期望 SQL 可以在 RDBMS 之间传输,如果您使用 2 个不同的,您将需要不同的代码。至于将日期和时间数据存储在什么地方,以及日期和时间数据类型 e。查看您实际使用的 RDBMS 的文档,它会告诉您您的选择。
-
节省 Y-m-d H:i:s 太少了。我还想要毫秒(1 个小数位)。
DATETIME(1)用于 MySQL,DATETIME2(1)用于 SQL Server。 数据类型应该很容易兼容两者。没有这样的数据类型。唯一的可能是将时间戳归一化为 ms 并存储在 BIGINT 数据类型中,但它需要再次针对每个 DBMS 进行特定转换。 -
小数点后一位不是毫秒。虽然很少听到这个词,但它是分秒
-
@Akina 在 MySQL 中使用
DATETIME(3)和在 MsSQL 中使用DATETIME2(3)工作正常。谢谢!
标签: mysql sql-server