我使用过各种ORM和数据库抽象,旨在简化多个数据库的工作,包括关系数据库和非关系数据库。更全面的解决方案通常会让您访问一些日期函数,这些日期函数可以归结为实际的SQL(或者在非SQL dbs的情况下)。另一方面,许多这些抽象不提供对SQL函数的直接访问,并且您无法直接处理日期。相反,你应该使用上层语言(PHP,Python,等等)进行日期纠缠,最后只插入,选择,你有什么格式化的日期。
所以我的问题是:如果SQL服务器永远不会对日期本身做任何事情,我最好只使用一个int并在其中加入纪元时间戳,或者是否有额外的值数据库服务器“知道”这是约会?
答案 0 :(得分:3)
如果您使用日期,请将其存储为日期。
这不仅可以更容易地在数据库和应用程序之间进行转换,而且当您需要根据日期执行任何操作时(您将会,为什么存储日期?)
也就是说,当您需要使用日期进行排序或查询时,您无需特别努力重新转换为日期。
答案 1 :(得分:1)
除了@Oded said
之外,如果您从未使用任何与日期相关的功能,仍有一些问题;
目前,您cannot store epoch timestamp in milliseconds into an INT
字段(溢出)。
没有毫秒的时间戳将在Tue Jan 19 2038 @ 03:14:08 GMT+0000 (GMT)
上溢出 INT ,因为它将大于2147483647
。
BUT ,Integer占用4个字节,Datetime占用8个字节。 You are better off 4 bytes if you are within above two limitations.