gpt4 book ai didi

mysql - 使用 CHAR(6) 表示年+月字段是个坏主意吗?

转载 作者:行者123 更新时间:2023-11-29 03:58:16 25 4
gpt4 key购买 nike

我正在使用 MySQL,我在表中有一个字段需要存储年+月值。该字段不需要日、分和秒信息。我正在考虑将字段创建为 CHAR(6)因为使用 > 似乎没问题, =<比较字符串。

SELECT '201108' < '201109'
>1

我想使用这种格式,因为我可以将相同的字符串插入到 Lucene 索引引擎中。这是个好主意还是我应该坚持 DATE

最佳答案

这会很好地工作,直到您必须实现自己的代码来计算两个值之间的差异,或者计算出 future 六个月您需要什么值。

使用日期类型,这就是(a) 的用途。如果分辨率太高,则强制执行将日期始终设置为 1 的约束。或者使用插入/更新触发器强制执行。

然后您可以使用您的 DBMS 供应商已经编写的所有花哨的日期操作代码,这些代码可能会更加高效,因为它将处理 native 二进制类型而不是字符串。

在这种特殊情况下,您也可以节省空间,因为 MySQL date 类型实际上比 char(6) 更短 .数据库决策通常不会同时为您提供空间 优势(这通常是一种权衡),因此您应该尽可能地捕获它们。


(a) 这适用于所有这些类型,例如 datetimedatetime

关于mysql - 使用 CHAR(6) 表示年+月字段是个坏主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7238477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com