当前位置:网站首页>数据库中的日期时间类型
数据库中的日期时间类型
2022-04-23 12:46:00 【兴趣使然的小小】
前言:
大家好, 这里是小小! 今天, 实验室的一个学长发现我提交的一次代码有问题! 差点以为要被特殊关心, 好了说正事了!
看到数据库中时间日期类型, 很多人就会说了哈, 直接存字符串String类型呀!简单点~emm
最开始我也是这么想的, 然后被驳回了!

字符串存储日期
把日期和时间当做一个字符串进行存储,进而将日期和时间拆分成两个字段,一个字段记录日期(如yyyy-MM-dd),另外一个字段存储时间(如:HH:mm:ss)的形式。此种方式就不多说,除非极个别的场景,不建议使用。当使用此种方式进行处理日期,不仅性能有问题,比较、处理、取范围等都是麻烦事。之所以提出这种方式,也是提醒大家,如果你的数据库日期字段还在用字符串存储,需要慎重考虑一下了。
比如:
前端展示日期 我假设现在是yyyyMMdd hh:mm:ss
那前端现在改成了MMddyyyy 那该怎么办呢?
碰到时区问题该怎么办呢?
雀氏 如果就存一个字符串的话! 很难进行改变!
所以就会使用下面这个字符串:
DateTime类型
DateTime类型存储的值既有日期又有时间。我们直观看到的格式为:yyyy-MM-dd HH:mm:ss。它支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。
但DateTime中并未存储时区信息,只存储了本地时间。也就是说:如果你将服务器的时区进行修改,数据库中记录的日期和时间并不会对应的变化。
那么,读出的数据与新存储的数据便是不一致的,也可以说是错误的。
通常,针对此种情况,如果涉及到跨时区问题,可考虑单独用一个字段来存储时区。
有时候还会使用:
Timestamp类型
Timestamp类型:也是既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。
Timestamp类型不仅存储了日期和时间,还存储了时区信息。如果以Timestamp类型存储,各数据库的实现会有所不相同,有的进行了内部时区自动转换。
如果应用服务器的时区和数据库服务器的时区不一致,你无法确定数据库驱动程序会不会自动帮你转换。
同时,时间范围是Timestamp硬伤。
| TIMESTAMP(14) | YYYYMMDDHHMMSS |
| TIMESTAMP(12) | YYMMDDHHMMSS |
| TIMESTAMP(10) | YYMMDDHHMM |
| TIMESTAMP(8) | YYYYMMDD |
| TIMESTAMP(6) | YYMMDD |
| TIMESTAMP(4) | YYMM |
| TIMESTAMP(2) | YY |
Unix timestamp
由于时区问题,地球上不同地方的人看到太阳升起的时间是不一样的。比如欧洲和北京时差有6-7个小时,当早上8点在北京看到太阳时,欧洲还处于凌晨1-2点。
除了上面所说的通过Timestamp类型存储包含时区的日期和时间外,还可以通过“绝对时间”来进行计算,单位为秒。
在计算机中,当前时间是指从一个基准时间(1970-1-1 00:00:00 +0:00)到现在的秒数,用一个整数表示。
有一个很神奇的东西, 就是2038年问题
为了调研数据库日期和时间的设置,也参考了阿里的开发手册,令人疑惑的是阿里使用的竟然是datetime类型。
的确如此,毕竟每个公司的业务范围不同,使用场景也不同。优秀的理念可以参考,但不能照搬。就好比本篇文章,介绍了不同类型的日期和时间存储,而根据你的业务场景选择最适合的那便是最好的。我这里最终决定用绝对时间戳来进行处理。
版权声明
本文为[兴趣使然的小小]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_51705526/article/details/124334304
边栏推荐
- I changed to a programmer at the age of 31. Now I'm 34. Let me talk about my experience and some feelings
- SSL证书退款说明
- BUUCTF WEB [BUUCTF 2018]Online Tool
- Qt绘制文字
- Number of nodes of complete binary tree
- mysql中 innoDB执行过程分析
- SSM framework series - annotation development day2-2
- Object.keys后key值数组乱序的问题
- The continuous construction of the Internet industry platform is not only able to collect traffic
- 4. DRF permission & access frequency & filtering & sorting
猜你喜欢

Resolve disagrees about version of symbol device_ create

Zero trust in network information security

网站首页文件被攻击篡改的形式有哪些

4.DRF 权限&访问频率&过滤&排序

Plato farm - a game of farm metauniverse with Plato as the goal

风尚云网学习-h5的input:type属性的image属性

How to prevent the website from being hacked and tampered with

ZigBee CC2530 minimum system and register configuration (1)

Object. The disorder of key value array after keys

传统企业如何应对数字化转型?这些书给你答案
随机推荐
【每日一题】棋盘问题
Fashion cloud learning - input attribute summary
Use source insight to view and edit source code
No idle servers? Import OVF image to quickly experience smartx super fusion community version
梳理网络IP代理的几大用途
uni-app 原生APP-本地打包集成极光推送(JG-JPUSH)详细教程
SPSS之单因素方差分析
How do traditional enterprises cope with digital transformation? These books give you the answer
Realize several "Postures" in which a box is horizontally and vertically centered in the parent box
Can I take the CPDA data analyst certificate for 0 foundation
Stacks and queues a
【微信小程序】z-index失效
[Blue Bridge Cup] April 17 provincial competition brushing training (the first three questions)
甲辰篇 創世紀《「內元宇宙」聯載》
Qt绘制文字
Qt绘制图像
C, calculation code of parameter points of two-dimensional Bezier curve
Remote sensing image classification and recognition system based on convolutional neural network
SSM框架系列——数据源配置day2-1
QT draw text