在某些情况下它没有任何值时,“到期日期”列类型应该是什么?(空白?空?0000-00-00?)

W. 是的

我有一个表格,说明我在主菜单中使用了哪些项目:

模型 | 显示名称 | 子菜单| 积极的

MYSQL:

CREATE TABLE `main_menu` (
  `model` varchar(255) NOT NULL COMMENT 'name of the model',
  `display_name` varchar(255) NOT NULL,
  `sub_menu` enum('Fruits','Vegtables','Grains','Breads','Snacks','Sweets') DEFAULT NULL,
  `active` tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

例子:

model   | display_name  | sub_menu  | active
---------------------------------------------
potato  | Potato        | Vegtables | 0
apple   | Apple         | Fruits    | 1
pumpkin | Pumpkin       | Vegtables | 1
  • 我想为其添加一个到期日期("exp_date")。
  • 并非所有行都有到期日期。

应该是什么类型的exp_date显然是“日期”……但如果某行没有 exp_date,什么被认为是“好的做法”?插入NULL? 插入0000-00-0

model   | display_name  | sub_menu  | active    | exp_date
--------------------------------------------------------------
potato  | Potato        | Vegtables | 0         | NULL
apple   | Apple         | Fruits    | 1         | NULL
pumpkin | Pumpkin       | Vegtables | 1         | 2019-03-01

使用 MySQL 5.7,可能会迁移到新的 8 版本。我只是想确保我正确地做这件事。我记得(不确定来自哪里)问题中的日期类型和日期值,并且有一种正确的方法可以做到这一点。

蒂姆·比格莱森

NULL当到期日期未知时,我认为用作占位符没有任何问题考虑作为示例,您要查找所有尚未过期的记录。治疗NULL为未未满时,我们可以写出下面的查询:

SELECT model, display_name, sub_menu, active, exp_date
FROM main_menu
WHERE exp_date > NOW() OR exp_date IS NULL;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何解析0000-00-00 00:00:00?

0000-00-00 00:00:00在时间戳

机器码中的00 00 00 00 00 00等是什么意思?

这些MAC地址为00:00:00:00:00:00的IP地址是什么?

日期时间值不正确:列的“0000-00-00 00:00:00”

将chr“ 00:00:00”转换为日期时间“ 00:00:00”

为什么 SQL 会将表中的日期更新为 0000-00-00 00:00:00?

MySQL不正确的日期时间值:“ 0000-00-00 00:00:00”

MySQL导入将时间戳的空值转换为0000-00-00 00:00:00

如何将字段的默认值设置为“ 0000-00-00 00:00:00”?

不正确的DateTime值'0000-00-00 00:00:00'-Date_Sub()在

无法将DateTimeField的默认值设置为“ 0000-00-00 00:00:00”

当DateTime设置为0000-00-00 00:00:00时,MySQL选择MIN DateTime

具有“ 0000-00-00 00:00:00”格式的Doctrine2默认时间戳?

HWaddr值00-00-00 ....是什么意思?

无法将'0000-00-00 00:00:00'转换为TIMESTAMP

PostgreSQL中更换 “0000-00-00 00:00:00” 为NULL

如何在PHP中正确设置“ 0000-00-00 00:00:00”作为DateTime

如何在Python中初始化datetime 0000-00-00 00:00:00?

如何使用javascript获取当前时间为00/00/0000 00:00:00

如何将时间“0000-00-00 00:00:00”设置为LocalDateTime?

'0000-00-00 00:00:00'不能表示为java.sql.Timestamp错误

将 PHP DateTimeInterface 保存到 MySQL 结果为 0000-00-00 00:00:00

mysql datetime在mysql版本5.6中变为0000-00-00 00:00:00

如何在python中使用strftime()格式化'0000-00-00 00:00:00'?

Java解析JSON与LocalDateTime 0000-00-00 00:00:00

在Mysql数据库中将0000-00-00 00:00:00插入到DateTime

为什么将“ 0000:00:00 00:00:00”解析为日期返回-0001-11-28T00:00:00Z?

MySQL检查日期为00:00:00的情况?