第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何獲取MySQL的當(dāng)前時(shí)區(qū)?

如何獲取MySQL的當(dāng)前時(shí)區(qū)?

慕斯王 2019-07-25 19:48:14
如何獲取MySQL的當(dāng)前時(shí)區(qū)?誰(shuí)知道MySQL中是否有這樣的功能?UPDATE這不會(huì)輸出任何有效信息:mysql> SELECT @@global.time_zone, @@session.time_zone;+--------------------+---------------------+| @@global.time_zone | @@session.time_zone |+--------------------+---------------------+| SYSTEM             | SYSTEM              |+--------------------+---------------------+或者也許MySQL本身無(wú)法準(zhǔn)確知道所time_zone使用的,那很好,我們可以參與PHP這里,只要我能得到有效的信息不喜歡SYSTEM......
查看完整描述

3 回答

?
慕少森

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊

從手冊(cè)(第9.6節(jié)):

可以像下面這樣檢索全局和客戶端特定時(shí)區(qū)的當(dāng)前值: 
mysql> SELECT @@global.time_zone, @@session.time_zone;

編輯SYSTEM如果將MySQL設(shè)置為系統(tǒng)時(shí)區(qū)的slave,則上面返回,這不太有用。由于您使用的是PHP,如果MySQL的答案是SYSTEM,您可以詢問(wèn)系統(tǒng)使用的時(shí)區(qū)date_default_timezone_get。(當(dāng)然,正如VolkerK所指出的那樣,PHP可能在不同的服務(wù)器上運(yùn)行,但是假設(shè),假設(shè)它正在與之交談的Web服務(wù)器和數(shù)據(jù)庫(kù)服務(wù)器設(shè)置為 [如果不是實(shí)際存在 ]同一時(shí)區(qū)不是巨大的飛躍。)但要注意(與MySQL一樣),您可以設(shè)置PHP使用的時(shí)區(qū)(date_default_timezone_set),這意味著它可能報(bào)告與操作系統(tǒng)使用的值不同的值。如果您掌握了PHP代碼,那么您應(yīng)該知道自己是否這樣做并且沒(méi)問(wèn)題。

但是MySQL服務(wù)器正在使用的時(shí)區(qū)的整個(gè)問(wèn)題可能是切線,因?yàn)樵儐?wèn)服務(wù)器它所在的時(shí)區(qū)對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)一無(wú)所知。繼續(xù)閱讀詳情:

進(jìn)一步討論

如果您控制服務(wù)器,當(dāng)然可以確保時(shí)區(qū)是已知數(shù)量。如果您無(wú)法控制服務(wù)器,可以設(shè)置連接使用的時(shí)區(qū),如下所示:

set time_zone = '+00:00';

這將時(shí)區(qū)設(shè)置為GMT,以便任何進(jìn)一步的操作(如now())將使用GMT。

但請(qǐng)注意,時(shí)間和日期值不會(huì)與MySQL中的時(shí)區(qū)信息一起存儲(chǔ):

mysql> create table foo (tstamp datetime) Engine=MyISAM;

Query OK, 0 rows affected (0.06 sec)


mysql> insert into foo (tstamp) values (now());

Query OK, 1 row affected (0.00 sec)


mysql> set time_zone = '+01:00';

Query OK, 0 rows affected (0.00 sec)


mysql> select tstamp from foo;

+---------------------+

| tstamp              |

+---------------------+

| 2010-05-29 08:31:59 |

+---------------------+

1 row in set (0.00 sec)


mysql> set time_zone = '+02:00';

Query OK, 0 rows affected (0.00 sec)


mysql> select tstamp from foo;

+---------------------+

| tstamp              |

+---------------------+

| 2010-05-29 08:31:59 |      <== Note, no change!

+---------------------+

1 row in set (0.00 sec)


mysql> select now();

+---------------------+

| now()               |

+---------------------+

| 2010-05-29 10:32:32 |

+---------------------+

1 row in set (0.00 sec)


mysql> set time_zone = '+00:00';

Query OK, 0 rows affected (0.00 sec)


mysql> select now();

+---------------------+

| now()               |

+---------------------+

| 2010-05-29 08:32:38 |      <== Note, it changed!

+---------------------+

1 row in set (0.00 sec)

因此,了解服務(wù)器的時(shí)區(qū)是在該得到的時(shí)間,現(xiàn)在的功能,如條款唯一重要的now(),unix_timestamp()等等; 它沒(méi)有告訴您有關(guān)數(shù)據(jù)庫(kù)數(shù)據(jù)中的日期使用的時(shí)區(qū)的任何信息。您可以選擇假設(shè)它們是使用服務(wù)器的時(shí)區(qū)編寫(xiě)的,但這種假設(shè)可能存在缺陷。要知道存儲(chǔ)在數(shù)據(jù)中的任何日期或時(shí)間的時(shí)區(qū),您必須確保它們與時(shí)區(qū)信息一起存儲(chǔ)或(如我所知)確保它們始終處于GMT狀態(tài)。

為什么假設(shè)數(shù)據(jù)是使用服務(wù)器的時(shí)區(qū)寫(xiě)的?嗯,首先,數(shù)據(jù)可能是使用設(shè)置不同時(shí)區(qū)的連接編寫(xiě)的。數(shù)據(jù)庫(kù)可能已從一個(gè)服務(wù)器移動(dòng)到另一個(gè)服務(wù)器,其中服務(wù)器位于不同的時(shí)區(qū)(當(dāng)我繼承了從德克薩斯州搬到加利福尼亞州的數(shù)據(jù)庫(kù)時(shí),我遇到了這個(gè)問(wèn)題)。但即使數(shù)據(jù)寫(xiě)在服務(wù)器上,當(dāng)前的時(shí)區(qū)也是如此,它仍然是模棱兩可的。去年,在美國(guó),夏令時(shí)于11月1日凌晨2點(diǎn)被關(guān)閉。假設(shè)我的服務(wù)器使用太平洋時(shí)區(qū)在加利福尼亞,我有值2009-11-01 01:30:00在數(shù)據(jù)庫(kù)中。那是什么時(shí)候?這是太平洋標(biāo)準(zhǔn)時(shí)間11月1日凌晨1:30,或太平洋標(biāo)準(zhǔn)時(shí)間11月1日凌晨1:30(一小時(shí)后)?你完全沒(méi)辦法知道。道德:始終將日期/時(shí)間存儲(chǔ)在GMT(不執(zhí)行DST)并在必要時(shí)轉(zhuǎn)換為所需的時(shí)區(qū)。


查看完整回答
反對(duì) 回復(fù) 2019-07-25
?
拉風(fēng)的咖菲貓

TA貢獻(xiàn)1995條經(jīng)驗(yàn) 獲得超2個(gè)贊

只是 SELECT @@system_time_zone;

返回PST(或與您的系統(tǒng)相關(guān)的任何內(nèi)容)。

如果您要確定會(huì)話時(shí)區(qū),可以使用此查詢:
SELECT IF(@@session.time_zone = 'SYSTEM', @@system_time_zone, @@session.time_zone);

如果會(huì)話時(shí)區(qū)與系統(tǒng)時(shí)區(qū)不同,則返回會(huì)話時(shí)區(qū)。


查看完整回答
反對(duì) 回復(fù) 2019-07-25
  • 3 回答
  • 0 關(guān)注
  • 1184 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)