当我们创建一个包含日期列的数据库时,它可以有类型日期。但在启动时,我在实习中使用int(11)作为类型来存储日期,如yyyymmdd,例如(20140121)。那么使用它有什么好处,或者它只是一个选择问题..数据库中的日期应该是Date类型还是int(11)?
回答
我会推荐在SQL Server中使用DATETIME数据类型。不一定是出于性能原因,而是要利用RDBMS特定的功能。例如,你将不得不重新发明了很多的逻辑只是做基础数据的数学(认为DATEDIFF(),DATEADD(),DATEPART()和其他许多功能。他们显然是量身定做的DATETIME数据类型,很容易跟...共事)。
你遇到了第一个问题(和我的答案)的准确问题。您将20111201和20120131视为日期,并且您的大脑告诉您应该有60天的差异。好吧,你循环通过基于关闭三角洲...这是:
20120131 - 20111201 = 8930(与包容性的循环这将是8931)
换句话说,while循环是执行8931次。发生这种情况,因为这些都是整数值,你的循环不会跳从20111231直接到20120101.
您的整数都不会考虑到年和月的上限。
其它信息: -
潜在的数据类型和它们的尺寸/限制:
十进制(8,0):5个字节
日期:3个字节,0001-01 -01至9999-12-31
Int:4字节
数字数据类型的优点:
他们看起来很漂亮吗?
缺点为数值数据类型:
1)需要自定义代码,用于处理日期操作
2)需要自定义的代码来管理正确的日期(即,不允许20120230 [2012年2月30日] )
3)与日期数据类型相比,数据占用空间更大。
所以我希望知道你将能够知道你应该使用哪种数据类型来存储日期。你可以通过上面的例子轻松定义 。
我希望我的回答能帮助你。
整数编码日期(例如20140121)在仓库数据库中很常见。
这是否是一个好主意取决于您使用的RBDMS。在某些情况下,它们使用的空间少于等效的日期时间数据类型,并且它们在原始数据表单中可读。
例如,2008年之前的版本,但在SQL Server用于是SQL Server推荐的方法2008+有这需要更少的空间,并且还容易读取作为日期一个3字节纯日期类型。
但不应该是日期类型自然的所有类型的比较? –
我不能想象使用一个普通的整数除了相当可疑的能力接受无效的日期,如-19000233的任何优势。
优点是在大多数DBMS中可以使用各种各样的精确的日期函数。例如在DB2中,您可以说
WHERE PAYMENT_DATE + 30 DAYS > ORDER_DATE
找出哪些客户不愿及时交出资金。
这就是我的想法.. –
- 1. c# - 是SHORT数据类型还是INT?
- 2. 实体成员应该是原始数据类型还是java数据类型?
- 3. 你应该在数据库中存储日期的类型是什么?
- 4. mySQL数据类型 - int(11)
- 5. Linq-to-date在数据库中的日期值是字符串
- 6. Excel确定单元格的数据类型是DateTime还是Int
- 7. 我应该使用EventArgs还是简单的数据类型?
- 8. 我应该借用还是复制我的小数据类型?
- 9. 在drupal中我应该使用内容类型还是数据库抽象层?
- 10. 从数据类型日期INT显式转换是不允许
- 11. 我应该使用GregorianCalendar还是Date作为生日场地?
- 12. 在MVC RadioButton中,在模型中应该使用int还是bool?
- 13. Oracle数据类型:我应该使用VARCHAR2还是CHAR
- 14. 模型的泛型超类应该是静态还是单态?
- 15. 数据库通过日期= 40683,因为这类型的INT
- 16. 我应该使用int还是UInt16?
- 17. 如何在“Date”数据类型的ArrayList中添加日期?
- 18. MISRA错误:字段类型应该是int,unsigned int或signed int
- 19. 数据库特定的类型是在域模型还是数据访问层?
- 20. 数据库层成员应该是静态还是实例?
- 21. 如何确定mysql数据库的类型:是InnoDB还是MyISAM?
- 22. 这应该是什么数据类型?
- 23. 我应该使用什么数据类型的时间(不是日期)
- 24. 在Oracle中减去日期 - 数量还是间隔数据类型?
- 25. int(11)数据类型在mysql |中的问题是int(11)的最大范围的原因?
- 26. 确定行是日期,字符串还是int在Python中
- 27. SQL的错误是操作数类型冲突:INT与日期
- 28. 在db中比较日期java.util.date和Date数据类型
- 29. 日期是01/01/0001,而不是日期在数据库中?
- 30. 模型类似于关系数据库的类还是结构?
谢谢你的解释。奇怪的人使用自己的类型而不是明确定义的类型。 –
“我会建议在SQL Server中使用DATETIME数据类型。” - 不。如果你想要一个日期使用日期数据类型。 “ –
”是的,我也建议在SQL服务器中使用DATETIME datetype。“ “ –