数据库时区(sql数据库中的时间类型)
各位老铁们,大家好,今天由我来为大家分享数据库时区,以及sql数据库中的时间类型的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!
sql数据库中的时间类型
日期时间类型:time:
格式:hh:mm:ss[.nnnnnnn]
范围:00:00:00.0000000到23:59:59.9999999
精确度:100纳秒
存储大小(以字节为单位):3-5
用户定义的秒的小数精度:有
时区偏移量:无
date:
格式:YYYY-MM-DD
范围:0001-01-01到 9999-12-31
精确度:1天
存储大小(以字节为单位):3
用户定义的秒的小数精度:无
时区偏移量:无
smalldatetime:
格式:YYYY-MM-DD hh:mm:ss
范围:1900-01-01到 2079-06-06
精确度:1分钟
存储大小(以字节为单位):4
用户定义的秒的小数精度:无
时区偏移量:无
datetime:
格式:YYYY-MM-DD hh:mm:ss[.nnn]
范围:1753-01-01到 9999-12-31
精确度:0.00333秒
存储大小(以字节为单位):8
用户定义的秒的小数精度:无
时区偏移量:无
datetime2:
格式:YYYY-MM-DD hh:mm:ss[.nnnnnnn]
范围:0001-01-01 00:00:00.0000000到9999-12-31 23:59:59.9999999
精确度:100钠秒
存储大小(以字节为单位):6到 8
用户定义的秒的小数精度:有
时区偏移量:无
datetimeoffset:
格式:YYYY-MM-DD hh:mm:ss[.nnnnnnn] [+|-]hh:mm
范围:0001-01-01 00:00:00.0000000到9999-12-31 23:59:59.9999999(以UTC时间表示)
精确度:100钠秒
存储大小(以字节为单位):8到10
用户定义的秒的小数精度:有
时区偏移量:有
数据库中 日期的几种表示方法
Mysql中经常用来存储日期的数据类型有三种:Date、Datetime、Timestamp。
【1】Date数据类型:用来存储没有时间的日期。Mysql获取和显示这个类型的格式为“YYYY-MM-DD”。支持的时间范围为“1000-00-00”到“9999-12-31”。
【2】Datetime类型:存储既有日期又有时间的数据。存储和显示的格式为“YYYY-MM-DD HH:MM:SS”。支持的时间范围是“1000-00-00 00:00:00”到“9999-12-31 23:59:59”。
【3】Timestamp类型:也是存储既有日期又有时间的数据。存储和显示的格式跟Datetime一样。支持的时间范围是“1970-01-01 00:00:01”到“2038-01-19 03:14:07”。
扩展资料
切记不要用字符串存储日期
这种存储日期的方式的优点还是有的,就是简单直白,容易上手。但是,这是不正确的做法,主要会有下面两个问题:
1、字符串占用的空间更大。
2、字符串存储的日期比较效率比较低(逐个字符进行比对),无法用日期相关的 API进行计算和比较。
DateTime类型没有时区信息的
DateTime类型是没有时区信息的(时区无关),DateTime类型保存的时间都是当前会话所设置的时区对应的时间。
当你的时区更换之后,比如你的服务器更换地址或者更换客户端连接时区设置的话,就会导致你从数据库中读出的时间错误。不要小看这个问题,很多系统就是因为这个问题闹出了很多笑话。
Timestamp和时区有关。Timestamp类型字段的值会随着服务器时区的变化而变化,自动换算成相应的时间,说简单点就是在不同时区,查询到同一个条记录此字段的值会不一样。
腾讯云数据库如何修改时区
第一,根据自建数据库的数据量、MySQL版本以及访问量等信息申请对应的云数据库实例,申请云数据库实例完成后,联系云数据库的腾讯云技术人员调整云数据库和云服务器之间的网络配置。
第二,迁移数据库:
1、使用mysqldump导出自建数据库的数据,注意记录binlog的文件和位置(如需帮助请咨询云数据库技术人员),然后使用mysql命令导入至对应的云数据库实例中。推荐使用云数据库多线程导入导出工具。
2、在自建数据库上给云数据库的同步用户授权,授权语句范例如下:
GRANT REPLICATION SLAVE,FILE ON*.* TO'replication'@'%' IDENTIFIED BY'test123';
3、在导入数据后根据备份的binlog位置和binlog文件使用change master命令配置从自建数据库到云数据库的主从同步。范例如下:
CHANGE MASTER TO MASTER_HOST='10.1.1.10',MASTER_USER='replication',MASTER_PASSWORD='test123',MASTER_LOG_FILE='mysql-bin.000012', MASTER_LOG_POS=106;
第三,迁移后数据校验:数据同步完成之后,可以使用数据抽样、对比表数量、库数量或者使用专业的对比工具确认数据是否完整。
第四,业务切换数据库:校验数据完整后,请选择适当时间来做业务的平滑切换,将业务连接的数据库切换至云数据库,切换后请务必检查自建数据库是否还有请求进来,避免出现还有请求连接到自建数据库的情况。
第五,断开自建数据库和云数据库主从同步:
1、切换后业务正常后,业务侧在云数据库上执行如下命令断开自建数据库到云数据库的主从同步。
2、断开主从同步后通知云数据库的技术人员恢复之前调整的网络。
mysql数据库时间怎么修改成东京时间
东京的时区是东九区,比我们北京东八区多1个时区,所以+9就是东京时间了
那我们怎么修改,有两种方法,一种是临时的,一种是长久的。
一:通过sql命令临时修改
#设置全局时区 mysql> set global time_zone='+8:00';
Query OK, 0 rows affected(0.00 sec)
#设置时区为东八区 mysql> set time_zone='+8:00';
Query OK, 0 rows affected(0.00 sec)
#刷新权限使设置立即生效 mysql> flush privileges;
Query OK, 0 rows affected(0.00 sec)
mysql> show variables like'%time_zone%';
+------------------+--------+
| Variable_name| Value|
+------------------+--------+
| system_time_zone| EST|
| time_zone|+08:00|
+------------------+--------+
2 rows in set(0.00 sec)
二:修改my.cnf实现永久修改
vi/etc/mysql/my.cnf
然后在mysqld下边的配置中添加一行:
default-time_zone='+8:00'
然后重启mysql
service mysql restart
关于本次数据库时区和sql数据库中的时间类型的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。