欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于mysql的時(shí)區(qū)問(wèn)題

 更新時(shí)間:2023年11月07日 08:37:55   作者:shuair  
這篇文章主要介紹了關(guān)于mysql的時(shí)區(qū)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家,

查看及設(shè)置時(shí)區(qū)

查看時(shí)區(qū)

命令:

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | SYSTEM |
+------------------+--------+

返回:

system_time_zone:mysql啟動(dòng)的時(shí)候,mysql服務(wù)所在服務(wù)器(主機(jī))的時(shí)區(qū),windows系統(tǒng)返回為空,linux系統(tǒng)一般會(huì)返回CST,個(gè)人認(rèn)為,這里的CST表示的是中國(guó)標(biāo)準(zhǔn)時(shí)間(CST還可以表示其它某些地區(qū)的標(biāo)準(zhǔn)時(shí)間),有時(shí)可能會(huì)返回UTC(協(xié)調(diào)世界時(shí)),粗略理解為0時(shí)區(qū)時(shí)間(GMT,格林尼治標(biāo)準(zhǔn)時(shí)間),個(gè)人認(rèn)為,system_time_zone并不是很重要

time_zone:當(dāng)前會(huì)話使用的時(shí)區(qū),可以在配置文件中指定默認(rèn)值,如果不指定,默認(rèn)值是SYSTEM,表示使用system_time_zone指向的時(shí)區(qū),time_zone可以使用時(shí)調(diào)整,一些函數(shù)(比如:now())返回的值就和time_zone有關(guān),但一般不要輕易改變

配置文件設(shè)置time_zone默認(rèn)值

在my.ini文件(linux系統(tǒng)是my.cnf文件)的[mysqld]節(jié)點(diǎn)設(shè)置,設(shè)置后重啟服務(wù)

[mysqld]
default-time-zone = '+0:00'

命令設(shè)置時(shí)區(qū)

mysql> set time_zone='+08:00';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +08:00 |
+------------------+--------+
2 rows in set (0.04 sec)

datetime和timestamp的區(qū)別

結(jié)論:datetime可以理解為保存的是一個(gè)字符串,切換時(shí)區(qū)后,不會(huì)有變化,timestamp可以理解為保存的是距離1970-01-01 08:00:00的時(shí)間差(將當(dāng)前時(shí)區(qū)的時(shí)間轉(zhuǎn)換成0時(shí)區(qū)的時(shí)間,然后計(jì)算與1970-01-01 08:00:00的時(shí)間差),切換時(shí)區(qū)后,顯示的是當(dāng)前時(shí)區(qū)所對(duì)應(yīng)的時(shí)間

創(chuàng)建一個(gè)表

CREATE TABLE `time_zone_test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `create_time` datetime NOT NULL,
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入數(shù)據(jù)并根據(jù)在不同時(shí)區(qū)查看數(shù)據(jù)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.03 sec)

mysql> INSERT INTO `test`.`time_zone_test` (`create_time`, `update_time`) VALUES ('2022-09-03 23:01:14', '2022-09-03 23:01:14');
Query OK, 1 row affected (0.01 sec)

mysql> select * from time_zone_test;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
|  1 | 2022-09-03 23:01:14 | 2022-09-03 23:01:14 |
+----+---------------------+---------------------+
1 row in set (0.04 sec)

mysql> set time_zone='+08:00';
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +08:00 |
+------------------+--------+
2 rows in set (0.03 sec)

mysql> select * from time_zone_test;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
|  1 | 2022-09-03 23:01:14 | 2022-09-03 23:01:14 |
+----+---------------------+---------------------+
1 row in set (0.06 sec)

mysql> set time_zone='-05:00';
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | -05:00 |
+------------------+--------+
2 rows in set (0.05 sec)

mysql> select * from time_zone_test;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
|  1 | 2022-09-03 23:01:14 | 2022-09-03 10:01:14 |
+----+---------------------+---------------------+
1 row in set (0.04 sec)

可以發(fā)現(xiàn)

  • create_time的類型是datetime,切換時(shí)區(qū)后,顯示的時(shí)間不變,update_time的類型是timestamp,切換時(shí)區(qū)后,顯示的時(shí)間有變化
  • 同時(shí)可以發(fā)現(xiàn),我的電腦默認(rèn)的時(shí)區(qū)就是 +08:00

mybatis連接mysql的問(wèn)題

java程序,以springboot程序?yàn)槔?,使用mybatis操作mysql時(shí),會(huì)涉及到時(shí)區(qū)轉(zhuǎn)換的問(wèn)題

連接mysql并設(shè)置時(shí)區(qū)

spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2B8
    username: xxxx
    password: xxxx
    driver-class-name: com.mysql.cj.jdbc.Driver

serverTimezone表示當(dāng)前會(huì)話的時(shí)區(qū),這句話應(yīng)該是錯(cuò)誤的,但是現(xiàn)在大部分文章都這樣寫

serverTimezone表示的是希望用戶配置一個(gè)與mysql服務(wù)器默認(rèn)的time_zone相同的值,我們一般設(shè)置為serverTimezone=GMT%2B8serverTimezone=Asia/Shanghai,因?yàn)槲覀兊膍ysql服務(wù)器time_zone一般就是+08:00

serverTimezone的作用是將程序的時(shí)區(qū)與serverTimezone設(shè)置的時(shí)區(qū)做比較,然后將時(shí)區(qū)轉(zhuǎn)換后的時(shí)間字符串發(fā)送給mysql服務(wù)器,到mysql服務(wù)器上,使用的會(huì)話時(shí)區(qū)就是默認(rèn)的會(huì)話時(shí)區(qū),就是默認(rèn)查詢出來(lái)的time_zone的值

修改windows系統(tǒng)的時(shí)區(qū)(附加)

使用tzutil工具

C:\Users\yangs>tzutil /g
China Standard Time
C:\Users\yangs>tzutil /s "Greenwich Standard Time"

C:\Users\yangs>tzutil /g
Greenwich Standard Time

添加數(shù)據(jù)時(shí),程序時(shí)區(qū)、serverTimezone時(shí)區(qū)不一致導(dǎo)致的時(shí)間轉(zhuǎn)換問(wèn)題

實(shí)際這里涉及到三個(gè)時(shí)區(qū)

  • 程序時(shí)區(qū):springboot的時(shí)區(qū)
  • serverTimezone設(shè)置的時(shí)區(qū)
  • mysql服務(wù)默認(rèn)的時(shí)區(qū)time_zone

springboot程序默認(rèn)使用所在系統(tǒng)的時(shí)區(qū)

例1

springboot項(xiàng)目所在操作系統(tǒng)的時(shí)區(qū)為:(UTC+08:00) 北京,重慶,香港特別行政區(qū),烏魯木齊

連接mysql設(shè)置serverTimezone=GMT%2B9,(UTC+09:00) 大阪,札幌,東京

當(dāng)前時(shí)間:

  • (UTC+08:00) 北京 10:30(電腦時(shí)間)
  • (UTC+09:00) 大阪 11:30

mysql的默認(rèn)時(shí)區(qū):+08:00

代碼邏輯:獲取當(dāng)前時(shí)間并存入到數(shù)據(jù)庫(kù)(createTime、updateTime)

程序的入?yún)ⅲú榭创蛴〉娜罩荆?/strong>

JDBC Connection [HikariProxyConnection@886416306 wrapping com.mysql.cj.jdbc.ConnectionImpl@25baed04] will not be managed by Spring
==>  Preparing: insert into time_zone_test (id, create_time, update_time ) values (?, ?, ? ) 
==> Parameters: null, 2022-09-04 10:22:33.937(Timestamp), 2022-09-04 10:22:33.937(Timestamp)
<==    Updates: 1

日志打印的是當(dāng)前時(shí)間,但是這個(gè)并不是發(fā)給mysql的時(shí)間,發(fā)給mysql的時(shí)間會(huì)做時(shí)區(qū)轉(zhuǎn)換

發(fā)給mysql的時(shí)間:

可在org.apache.ibatis.executor.SimpleExecutor#doUpdate查看

HikariProxyPreparedStatement@1978182025 wrapping com.mysql.cj.jdbc.ClientPreparedStatement: insert into time_zone_test (id, create_time, update_time
      )
    values (null, '2022-09-04 11:22:33.937', '2022-09-04 11:22:33.937'
      )

數(shù)據(jù)庫(kù)中查看:

mysql> set time_zone='+08:00';
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +08:00 |
+------------------+--------+
2 rows in set (0.03 sec)

mysql> select * from time_zone_test where id = 8;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
|  8 | 2022-09-04 11:22:34 | 2022-09-04 11:22:34 |
+----+---------------------+---------------------+
1 row in set (0.04 sec)

mysql> set time_zone='+09:00';
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +09:00 |
+------------------+--------+
2 rows in set (0.03 sec)

mysql> select * from time_zone_test where id = 8;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
|  8 | 2022-09-04 11:22:34 | 2022-09-04 12:22:34 |
+----+---------------------+---------------------+
1 row in set (0.04 sec)

由此可以看出:

  • springboot程序是+08:00,serverTimezone設(shè)置的是+09:00,所以在組裝sql語(yǔ)句的時(shí)候會(huì)給時(shí)間+1
  • 執(zhí)行sql語(yǔ)句時(shí),就是在mysql服務(wù)器默認(rèn)時(shí)區(qū)(+08:00)進(jìn)行的,可以根據(jù)update_time的值判斷,如果是在+09:00執(zhí)行的,那么在+08:00查詢出來(lái)的時(shí)間就會(huì)少1小時(shí),實(shí)際上并沒(méi)有
  • 從2也能看出,serverTimezone設(shè)置的值并不是當(dāng)前會(huì)話的時(shí)區(qū),只是告訴程序應(yīng)該怎么轉(zhuǎn)換這個(gè)時(shí)間

例2

springboot項(xiàng)目所在操作系統(tǒng)的時(shí)區(qū)為:(UTC+08:00) 北京,重慶,香港特別行政區(qū),烏魯木齊

連接mysql設(shè)置serverTimezone=GMT%2B9,(UTC+09:00) 大阪,札幌,東京

當(dāng)前時(shí)間:

  • (UTC+08:00) 北京 16:40(電腦時(shí)間)
  • (UTC+09:00) 大阪 17:40

mysql的默認(rèn)時(shí)區(qū):+08:00

代碼邏輯:使用now()函數(shù)存入到數(shù)據(jù)庫(kù)(createTime、updateTime)

發(fā)給mysql的語(yǔ)句:

HikariProxyPreparedStatement@764739765 wrapping com.mysql.cj.jdbc.ClientPreparedStatement: insert into time_zone_test (id, create_time, update_time
      )
    values (null, now(), now()
      )

數(shù)據(jù)庫(kù)中查看:

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | SYSTEM |
+------------------+--------+
2 rows in set (0.05 sec)

mysql> select * from time_zone_test where id = 15;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
| 15 | 2022-09-04 16:45:30 | 2022-09-04 16:45:30 |
+----+---------------------+---------------------+
1 row in set (0.05 sec)

mysql> set time_zone='+08:00';
Query OK, 0 rows affected (0.01 sec)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +08:00 |
+------------------+--------+
2 rows in set (0.05 sec)

mysql> select * from time_zone_test where id = 15;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
| 15 | 2022-09-04 16:45:30 | 2022-09-04 16:45:30 |
+----+---------------------+---------------------+
1 row in set (0.07 sec)

mysql> set time_zone='+09:00';
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +09:00 |
+------------------+--------+
2 rows in set (0.07 sec)

mysql> select * from time_zone_test where id = 15;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
| 15 | 2022-09-04 16:45:30 | 2022-09-04 17:45:30 |
+----+---------------------+---------------------+
1 row in set (0.08 sec)

由此可以看出:

now()函數(shù)是在+08:00時(shí)區(qū)執(zhí)行的,與serverTimezone設(shè)置的值無(wú)關(guān) 例3

springboot項(xiàng)目所在操作系統(tǒng)的時(shí)區(qū)為:(UTC+00:00) 蒙羅維亞,雷克雅未克

連接mysql設(shè)置serverTimezone=GMT%2B8,(UTC+08:00) 北京,重慶,香港特別行政區(qū),烏魯木齊

當(dāng)前時(shí)間:

  • (UTC+00:00) 蒙羅維亞 9:00(電腦時(shí)間)
  • (UTC+08:00) 北京 17:00

mysql的默認(rèn)時(shí)區(qū):+00:00

代碼邏輯:獲取當(dāng)前時(shí)間并存入到數(shù)據(jù)庫(kù)(createTime、updateTime)

程序的入?yún)ⅲú榭创蛴〉娜罩荆?/strong>

JDBC Connection [HikariProxyConnection@1876572082 wrapping com.mysql.cj.jdbc.ConnectionImpl@584e44f5] will not be managed by Spring
==>  Preparing: insert into time_zone_test (id, create_time, update_time ) values (?, ?, ? )
==> Parameters: null, 2022-09-04 09:10:41.157(Timestamp), 2022-09-04 09:10:41.157(Timestamp)
<==    Updates: 1

日志打印的是當(dāng)前時(shí)間,但是這個(gè)并不是發(fā)給mysql的時(shí)間,發(fā)給mysql的時(shí)間會(huì)做時(shí)區(qū)轉(zhuǎn)換

發(fā)給mysql的時(shí)間:

HikariProxyPreparedStatement@419867077 wrapping com.mysql.cj.jdbc.ClientPreparedStatement: insert into time_zone_test (id, create_time, update_time
      )
    values (null, '2022-09-04 17:10:41.157', '2022-09-04 17:10:41.157'
      )

數(shù)據(jù)庫(kù)中查看:

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +00:00 |
+------------------+--------+
2 rows in set (0.05 sec)

mysql> select * from time_zone_test where id = 16;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
| 16 | 2022-09-04 17:10:41 | 2022-09-04 17:10:41 |
+----+---------------------+---------------------+
1 row in set (0.05 sec)

mysql> set time_zone='+08:00';
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +08:00 |
+------------------+--------+
2 rows in set (0.07 sec)

mysql> select * from time_zone_test where id = 16;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
| 16 | 2022-09-04 17:10:41 | 2022-09-05 01:10:41 |
+----+---------------------+---------------------+
1 row in set (0.09 sec)

由此可以看出:

  • springboot程序是+00:00,serverTimezone設(shè)置的是+08:00,所以在組裝sql語(yǔ)句的時(shí)候會(huì)給時(shí)間+8
  • 執(zhí)行sql語(yǔ)句時(shí),在mysql服務(wù)器默認(rèn)時(shí)區(qū)(+00:00)進(jìn)行的,將發(fā)送過(guò)來(lái)的17點(diǎn),在+00:00時(shí)區(qū)執(zhí)行保存
  • 將時(shí)區(qū)調(diào)整為+08:00進(jìn)行查詢,會(huì)發(fā)現(xiàn)update_time時(shí)間又增加了8,這是正確的

例4

springboot項(xiàng)目所在操作系統(tǒng)的時(shí)區(qū)為:(UTC+00:00) 蒙羅維亞,雷克雅未克

連接mysql設(shè)置serverTimezone=GMT%2B8,(UTC+08:00) 北京,重慶,香港特別行政區(qū),烏魯木齊

當(dāng)前時(shí)間:

  • (UTC+00:00) 蒙羅維亞 9:30(電腦時(shí)間)
  • (UTC+08:00) 北京 17:30

mysql的默認(rèn)時(shí)區(qū):+00:00

代碼邏輯:使用now()函數(shù)存入到數(shù)據(jù)庫(kù)(createTime、updateTime)

發(fā)給mysql的語(yǔ)句:

HikariProxyPreparedStatement@1333630381 wrapping com.mysql.cj.jdbc.ClientPreparedStatement: insert into time_zone_test (id, create_time, update_time
      )
    values (null, now(), now()
      )

數(shù)據(jù)庫(kù)中查看:

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +00:00 |
+------------------+--------+
2 rows in set (0.03 sec)

mysql> select * from time_zone_test where id = 17;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
| 17 | 2022-09-04 09:30:26 | 2022-09-04 09:30:26 |
+----+---------------------+---------------------+
1 row in set (0.06 sec)

mysql> set time_zone='+08:00';
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%time_zone%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone |        |
| time_zone        | +08:00 |
+------------------+--------+
2 rows in set (0.06 sec)

mysql> select * from time_zone_test where id = 17;
+----+---------------------+---------------------+
| id | create_time         | update_time         |
+----+---------------------+---------------------+
| 17 | 2022-09-04 09:30:26 | 2022-09-04 17:30:26 |
+----+---------------------+---------------------+
1 row in set (0.06 sec)

由此可以看出:

now()函數(shù)是在+00:00時(shí)區(qū)執(zhí)行的,與serverTimezone設(shè)置的值無(wú)關(guān)

查詢數(shù)據(jù)時(shí),程序時(shí)區(qū)、serverTimezone時(shí)區(qū)不一致導(dǎo)致的時(shí)間轉(zhuǎn)換問(wèn)題

查詢數(shù)據(jù)時(shí),也會(huì)對(duì)時(shí)間類型的數(shù)據(jù)進(jìn)行轉(zhuǎn)換

例5

環(huán)境與例4一致,進(jìn)行查詢操作

從mysql查詢回來(lái)的數(shù)據(jù)(查看打印的日志):

JDBC Connection [HikariProxyConnection@1625710104 wrapping com.mysql.cj.jdbc.ConnectionImpl@109c4ff6] will not be managed by Spring
==>  Preparing: select id, create_time, update_time from time_zone_test where id = ?
==> Parameters: 17(Integer)
<==    Columns: id, create_time, update_time
<==        Row: 17, 2022-09-04 09:30:26, 2022-09-04 09:30:26
<==      Total: 1

實(shí)際展示的數(shù)據(jù)(接口進(jìn)行查詢操作)

{
  "id": 17,
  "createTime": "2022-09-04T01:30:26.000+00:00",
  "updateTime": "2022-09-04T01:30:26.000+00:00"
}

由此可以看出:

  • mysql從+00:00時(shí)區(qū)查詢出數(shù)據(jù)給到springboot程序
  • 由于設(shè)置了serverTimezone=GMT%2B8,程序會(huì)認(rèn)為這是+08:00時(shí)區(qū)的數(shù)據(jù),程序本身的時(shí)區(qū)是+00:00,所以轉(zhuǎn)換成java對(duì)象數(shù)據(jù)時(shí)進(jìn)行了-8操作,展示的數(shù)據(jù)也是-8后的結(jié)果
  • 添加數(shù)據(jù)時(shí),是9:30 +00:00,查出來(lái)的數(shù)據(jù)是1:30 +00:00,這明顯是不一致的,原因就在于serverTimezone設(shè)置的時(shí)區(qū)與mysql默認(rèn)的時(shí)區(qū)不一致,其實(shí)使用now()函數(shù),可以理解為保存的數(shù)據(jù)庫(kù)中的數(shù)據(jù)是準(zhǔn)確的。如果由程序生成時(shí)間,那么發(fā)送給mysql時(shí)會(huì)發(fā)生時(shí)間轉(zhuǎn)換,此時(shí)保存到mysql中的數(shù)據(jù)就可以理解為是不準(zhǔn)確的,即使查詢展示的數(shù)據(jù)可能是對(duì)的

如果進(jìn)行格式化,顯示+08:00的時(shí)間

配置:

spring:
  jackson:
    time-zone: GMT+8   

顯示:

{
  "id": 17,
  "createTime": "2022-09-04T09:30:26.000+08:00",
  "updateTime": "2022-09-04T09:30:26.000+08:00"
}

總結(jié)

避免數(shù)據(jù)錯(cuò)誤,serverTimezone設(shè)置的值一定要和mysql默認(rèn)的時(shí)區(qū)一致(可以通過(guò)配置文件指定)

不要輕易切換mysql的默認(rèn)時(shí)區(qū),如果程序不對(duì)應(yīng)修改serverTimezone的值會(huì)造成數(shù)據(jù)錯(cuò)誤

建議mysql默認(rèn)時(shí)區(qū)使用+08:00時(shí)區(qū),datetime類型的數(shù)據(jù)實(shí)際可以理解為是字符串,是不變的,比如,保存數(shù)據(jù)時(shí),使用的是+00:00時(shí)區(qū),保存的就是+00:00時(shí)區(qū)的對(duì)應(yīng)的值,雖然如果配置正確,程序可以轉(zhuǎn)換成我們想要的+08:00時(shí)區(qū)的值,但是畢竟數(shù)據(jù)庫(kù)中存儲(chǔ)的就是當(dāng)時(shí)+00:00時(shí)區(qū)的對(duì)應(yīng)的值,所以還是建議mysql默認(rèn)時(shí)區(qū)使用+08:00時(shí)區(qū),儲(chǔ)存的時(shí)間就是我們用的時(shí)間

程序所在的時(shí)區(qū)應(yīng)該可以任意,但是用戶輸入的時(shí)間類型的數(shù)據(jù)就需要特殊關(guān)注,比如,程序的時(shí)區(qū)是+00:00時(shí)區(qū),用戶輸入的數(shù)據(jù)是+08:00時(shí)區(qū)數(shù)據(jù),那就得明確告訴程序用戶輸入的是+08:00時(shí)區(qū)的數(shù)據(jù)。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 如何選擇合適的MySQL日期時(shí)間類型來(lái)存儲(chǔ)你的時(shí)間

    如何選擇合適的MySQL日期時(shí)間類型來(lái)存儲(chǔ)你的時(shí)間

    這篇文章主要介紹了如何選擇合適的MySQL日期時(shí)間類型來(lái)存儲(chǔ)你的時(shí)間,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • 簡(jiǎn)單介紹下MYSQL的索引類型

    簡(jiǎn)單介紹下MYSQL的索引類型

    本文介紹了七種MySQL索引類型。在數(shù)據(jù)庫(kù)表中,對(duì)字段建立索引可以大大提高查詢速度。通過(guò)善用這些索引,可以令MySQL的查詢和運(yùn)行更加高效。
    2015-07-07
  • MySQL數(shù)據(jù)庫(kù)遷移到Oracle數(shù)據(jù)庫(kù)的完整步驟記錄

    MySQL數(shù)據(jù)庫(kù)遷移到Oracle數(shù)據(jù)庫(kù)的完整步驟記錄

    在研發(fā)過(guò)程中可能會(huì)用到將表數(shù)據(jù)庫(kù)中的表結(jié)構(gòu)及數(shù)據(jù)遷移到另外一種數(shù)據(jù)庫(kù)中,比如說(shuō)從mysql中遷移到oracle中,這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)遷移到Oracle數(shù)據(jù)庫(kù)的完整步驟,需要的朋友可以參考下
    2024-06-06
  • MySQL 5.7并發(fā)復(fù)制隱式bug實(shí)例分析

    MySQL 5.7并發(fā)復(fù)制隱式bug實(shí)例分析

    這篇文章主要給大家介紹了關(guān)于MySQL 5.7并發(fā)復(fù)制隱式bug的相關(guān)資料,文中介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用mysql5.7具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • MySQL中的if和case語(yǔ)句使用總結(jié)

    MySQL中的if和case語(yǔ)句使用總結(jié)

    這篇文章主要介紹了MySQL中的if和case語(yǔ)句使用總結(jié),本文講解了IF語(yǔ)句作為表達(dá)式和流程控制語(yǔ)句使用實(shí)例,需要的朋友可以參考下
    2015-02-02
  • MySQL定時(shí)全庫(kù)備份數(shù)據(jù)庫(kù)

    MySQL定時(shí)全庫(kù)備份數(shù)據(jù)庫(kù)

    數(shù)據(jù)備份真的很重要, 因?yàn)榭赡苡幸惶鞌?shù)據(jù)會(huì)被莫名其妙的刪掉了,本文主要介紹了MySQL定時(shí)備份數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • MySQL數(shù)據(jù)庫(kù)必知必會(huì)之安全管理

    MySQL數(shù)據(jù)庫(kù)必知必會(huì)之安全管理

    MySQL數(shù)據(jù)庫(kù)通常包含關(guān)鍵的數(shù)據(jù),為確保這些數(shù)據(jù)的安全和完整,需要利用訪問(wèn)控制和用戶管理的功能,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)庫(kù)必知必會(huì)之安全管理的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • MySql用DATE_FORMAT截取DateTime字段的日期值

    MySql用DATE_FORMAT截取DateTime字段的日期值

    MySql截取DateTime字段的日期值可以使用DATE_FORMAT來(lái)格式化,使用方法如下
    2014-08-08
  • MySQL中BETWEEN子句的用法詳解

    MySQL中BETWEEN子句的用法詳解

    這篇文章主要介紹了MySQL中BETWEEN子句的用法詳解,是MySQL入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • MySQL因大事務(wù)導(dǎo)致的Insert慢實(shí)例分析

    MySQL因大事務(wù)導(dǎo)致的Insert慢實(shí)例分析

    這篇文章主要給大家介紹了關(guān)于MySQL因大事務(wù)導(dǎo)致Insert慢的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10

最新評(píng)論