【发布时间】:2014-10-05 04:41:39
【问题描述】:
我想将日期的月份和日期部分保存在数据库表中。无论实际年份如何,这都会得到修复,因此我也不需要保存年份。
我可以定义一个类型,如:char(5) 并将其保存为:01-01,但这不会“保护”免受垃圾字符串的影响。
有没有办法更好地定义它?例如。一个月和一天的枚举有意义吗? (尽管仍然可以定义像 02-30 这样的东西,这当然是没有意义的)
【问题讨论】:
-
您可以使用两个字段而不是一个字段。您将对它们有更多的控制权
-
@JCalcines:但是什么类型?我会遇到同样的问题,但是在 2 个字段中(例如,如果我将它们定义为 char 或 int)
-
您可以同时使用
int。更容易检查月份是否在 1 到 12 之间以及日期是否在 1 到 31 之间。您也可以使用EXTRACT(MONTH from '2014/08/12')从日期中提取月份和日期 -
@JCalcines:但是仍然可以使用错误的值更新该列。您假设该表将仅通过例如更新一个用户界面
-
好的,我开始明白你的意思了,但是 2 月 29 日会发生什么。这是对还是错?