-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Q18. [個人技能題組][Backend] 基礎: 時區 #25
Comments
「於2017/04/06 開始答題」 2.timestamp是從某個時間(格林威治时间1970年01月01日00时00分00秒)起到現在的總秒數,每個地方的數值都一樣,因此無法表示時區。 3.可以 關於這個 另外資料庫的預設時區是跟系統時區相關的,若是更改系統時區資料庫的時區也會跟著變更,也就是system_time_zone會跟著改變。 4.不能 5.可以 6.時間欄位型態的差別 7.timestamp 和 datetime 的差別 datetime 8.使用UTC由於是世界通用,若有不同時區使用者則能統一時間資訊,但若只有在同一時區上,由於時間上會相差八小時造成不易辨別。 9.由於一般資料庫時區域設為系統時區,所以一旦系統時區變更資料庫也跟著改變。 10.因為mysql/mariadb資料庫中沒有boolean型態,因此預設會將bool型態轉為tinyint(1)。 11.效用都一樣,tinyint(1)表示1bit的int,因為boolean只有兩種值——true和false,在邏輯運算中同時也代表1跟0,因此使用1bit的int便可以用來當作boolean值使用。 「於2017/04/08 答題結束」 |
「於2017/04/06 開始答題」 「於2017/04/07 答題結束」 |
「於2017/05/01 開始答題」 UTC 是什麼?能表示時區嗎? Timestamp 是什麼?能表示時區嗎? DB 能不能設定時區 (以 mysql 為例) 程式能不能設定時區 (以 nodejs 為例) 系統能不能設定時區 (以 linux 為例) Mysql 欄位格式 timestamp 和 datetime 的差別是什麼 系統(伺服器)的時區設定是否會影響 DB 中的資料? (限mysql/mariadb)今天在 DB 中新增一個欄位,當時欄位型別是寫 boolean,但實際上開起來根本不是 boolean。這中間發生了什麼事情? 在一個 table 放一個 timestamp 的欄位 |
「於2017/05/01 開始答題」
|
因為第 4 題是「程式能不能設定時區」只是以 nodejs 為例。 我要提醒一下,其實有的程式語言是可以設定程式層級的預設時區。 亂聊一下我的理解: 「真實世界」
「電腦世界」
回歸到題目,所謂的指定 timezone,都是應用在「當所在環境使用時間日期資訊時,需要轉換成表達字串,卻沒有清楚告知所用的 timezone 資訊,則預設採用的 timezone 設定」。 如果所在環境是作業系統層級,就拿作業系統的預設 timezone。 timestamp data type 欄位存的是 timestamp 值,datetime 欄位,存的比較像是給人看的表達字串。所以當 DB 預設的 timezone 設定一旦改變,重新下 select 語法分別讀 timestamp/datetime 的值,就會看到這兩種欄位的差異了。 如果知道了上述的關係,就會知道什麼時候該關心 timezone,什麼時候不用。ex: 同時區的兩個人相差幾歲、不同時區的兩個人相差幾歲。 |
時間格式是新手入坑肯定會摔跤的地方,試著回答下列問題。
boolean
,但實際上開起來根本不是boolean
。這中間發生了什麼事情?@tnstiger 建議這麼做:
不弄懂這些問題,那你就會像隻跑回圈的老鼠,永遠都搞不清楚要怎麼用
答題時間: ? hr
The text was updated successfully, but these errors were encountered: