Mysql 使用啥字段类型用于包含完整日期和部分日期的日期

Posted

技术标签:

【中文标题】Mysql 使用啥字段类型用于包含完整日期和部分日期的日期【英文标题】:Mysql what field type to use for dates with a mix of full and part datesMysql 使用什么字段类型用于包含完整日期和部分日期的日期 【发布时间】:2009-06-29 22:12:20 【问题描述】:

我有一个包含三个不同日期列的表,因此我将每个列设置为“日期”类型。

然而,每当我导入日期时,它似乎会改变它们,我发现这是因为 mysql 不允许空天和月份。

我的日期范围从

1909-00-00 1963-09-00 1907-11-30

所以有时我们不知道月份,有时不知道日期,有时只记录年份。

当然,“正确”的做法是使用某种日期字段,但我在导入数据时尝试了各种不同的布局,但无效:( dd-mm-yyyy mm-dd-yyyy 年年/日/月

有什么建议吗?

【问题讨论】:

【参考方案1】:

没有数据结构可以充当日期,但允许任何组件使用 00。如果您真的坚持要模拟这一点,您可以将数据分成 3 列 - 年、月、日,然后编写一个复杂的触发器来验证每个更新/插入查询。

不过我不敢。然而,你问,我试图回答。 ;]

【讨论】:

【参考方案2】:

我建议使用 varchar,然后在需要时将其转换为日期。 Here 是一个具有一些有用的日期功能的站点。

【讨论】:

谢谢birdlips,那也是我来的地方。不过我想知道,为什么对于具有空条目的日期没有函数或字段类型,这在历史应用程序中经常出现! 据我了解,数据库将尝试验证输入的日期。如果它无效,它将不允许您存储它。这是为了保持数据完整性。我认为您没有任何选项可以在日期字段中存储非日期值。

以上是关于Mysql 使用啥字段类型用于包含完整日期和部分日期的日期的主要内容,如果未能解决你的问题,请参考以下文章

我的一个网站,mysql数据库里的,加入日期和最后登录日期,是一窜的数字,看不明白啥意思

mysql数据库中字段为时间类型要怎么啥类型表示

mysql 日期和时间问题 求助

MySQL日期类型

HTML5中input元素新增加哪些type属性值?它们有啥作用?

MySQL数据类型 - 日期和时间类型