以经验记录为例。
我于2016-05-12开始在Google工作
started_at = 2016-05-12
我目前在Google工作
finished_at = null
在数据库上定义尚未达到日期的正确方法是什么?
我只是通过询问is null
来完成这个,但我觉得这是一个非常糟糕的方法,但是,另一方面,添加另一个列(isFinished)只是为了存储真或假看起来很糟糕我也是......所以......
你是怎么做到的?
答案 0 :(得分:1)
你的方法对我来说很好。如果它是NULL
那么这意味着你还在滚动。除此之外,您还可以设置bit
字段,例如Isfinished
,可以设置为true
false
答案 1 :(得分:1)
许多组织使用不同的方式来存储“未来未知日期”,它通常以您最喜欢的方式进行:
NULL
值以表示未完成的日期。答案 2 :(得分:1)
正如戈登在评论中提到的,使用NULL
表示未知日期是完全正确的。但是,如果您希望该列可能包含将来的日期,并且您想要检查未知日期或尚未发生的日期,那么您将需要执行两次检查。
SELECT *
FROM job_history jh
WHERE jh.finish_date is null or jh.finish_date < CURDATE();