何时使用 VARCHAR 和 DATE/DATETIME [英] When to use VARCHAR and DATE/DATETIME
问题描述
我们在 Freenode 上进行了这个编程讨论,当我尝试使用 VARCHAR(255) 以这种格式存储日期变量时出现了这个问题:D/MM/YYYY.所以问题是为什么使用 VARCHAR 存储日期如此糟糕.优点如下:
We had this programming discussion on Freenode and this question came up when I was trying to use a VARCHAR(255) to store a Date Variable in this format: D/MM/YYYY. So the question is why is it so bad to use a VARCHAR to store a date. Here are the advantages:
- 编码速度更快.以前我使用过 DATE,但日期格式真的很麻烦.
- 使用字符串比使用日期更耗电?谁在乎,我们生活在 Ghz 时代.
- 这在道德上是不正确的(lolwut?)这是另一个用户告诉我的......
那么你更喜欢用什么来存储日期?SQL VARCHAR 还是 SQL DATE?
So what would you prefer to use to store a date? SQL VARCHAR or SQL DATE?
推荐答案
为什么不用锤子拧螺丝?
Why not put screws in with a hammer?
因为它不是工作的正确工具.
Because it isn't the right tool for the job.
VARCHAR 版本的一些缺点:
Some of the disadvantages of the VARCHAR version:
- 您无法轻松地向 VARCHAR 版本添加/减去天数.
- 仅提取月/年比较困难.
- 没有什么能阻止您将非日期数据放入数据库的 VARCHAR 列中.
- VARCHAR 版本是特定于文化的.
- 您无法轻松地对日期进行排序.
- 如果您以后想更改格式,则很难.
- 这是非常规的,这会让其他开发者更难理解.
- 在许多环境中,使用 VARCHAR 会使用更多的存储空间.对于少量数据,这可能无关紧要,但在拥有数百万行数据的商业环境中,这可能会产生很大的不同.
当然,在你的爱好项目中,你可以做你想做的.在专业环境中,我会坚持使用正确的工具来完成工作.
Of course, in your hobby projects you can do what you want. In a professional environment I'd insist on using the right tool for the job.
这篇关于何时使用 VARCHAR 和 DATE/DATETIME的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!