我正在考虑在具有大量对象/人/动物/建筑物等的数据库中创建项目。
该应用程序将允许用户选择两个候选者,然后看哪个先出现。比较将按日期或课程进行。
MySQL仅允许在01/01/1000
之后的日期。
如果要比较先出现的用户:Michael Jackson或Fred Mercury,答案很容易,因为他们是在今年之后。
但是,如果要比较哪个先出现:霸王龙或狗,它们都在接受日期之前。
考虑SQL限制,如何进行比较?
我什么都没做,但这是我在开始做永远无法使用的事情之前想知道的事情。
这不是有关旧日期的其他问题的重复。
在其他问题中,人们正在询问如何存储。这将非常容易,只需用它做一个字符串即可。但就我而言,我需要比较他们尚未要求的日期。
正如人们在其他问题中回答的那样,我可以将日期存储为字符串,在后面使用A
,在之前使用B
。不会有问题的。但是我该如何比较那些日期?我需要中断字符串的哪一部分?
最佳答案
您可以将一个带签名的BIGINT字段用作UNIX时间戳。
UNIX时间戳是自1970年1月1日UTC 0:00以来经过的秒数。
任何时间点都只会是负时间戳。
如果我的业余估算是正确的,那么BIGINT就足以将您带入过去的292471208678年(从1970年开始)和未来的相同年数。这应该足以满足几乎所有需求。
这将使日期很容易比较-您只需要查看一个日期是否大于另一个日期即可。
但是,您必须在mySQL之外进行从日历日期到时间戳的转换。
根据您使用的平台,可能会有一个日期库来帮助您完成任务。
关于mysql - 比较在基督之前可能已经完成的事物的创建日期,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34535210/