Navicat 支援團隊最常收到的問題之一是如何設定網格和表單檢視中的日期和時間格式。實際上,這非常簡單!在今天的文章中,我們將詳細介紹在 Navicat Premium 中全域變更日期和時間格式的步驟。
在 Navicat 中定義顯示格式
你可以在「選項」對話方塊的「記錄」畫面中找到日期和時間的顯示格式。你可以透過主選單的「工具」->「選項...」命令來存取它:
我們可以在「記錄」畫面的「顯示格式」部分中看到日期、時間和日期時間的格式(紅框圈住的部分):
設定格式
現在,讓我們以 Sakila 範例資料庫為例,更新日期時間的格式。Sakila 中大多數資料表都包含了一個用於審計,名為 last_update 的日期時間欄位。我們可以在螢幕截圖中的 actor 資料表看到它(紅框圈住的部分):
預設情況下,Navicat 會以資料庫定義的格式顯示日期和時間。MySQL 會以「YYYY-MM-DD hh:mm:ss」格式顯示日期時間值,例如「2019-10-12 14:35:18」(請注意它使用 24 小時制)。
標準 SQL 和 ODBC 日期和時間常值
「YYYY-MM-DD hh:mm:ss」字串中的字母含義是標準 SQL 和 ODBC 日期和時間常值的一部分。這些是在 SQL 查詢中表示日期和時間值的標準化方式。它們提供了一種一致且與平台無關的方法來指定 SQL 陳述式中的日期和時間值。以下是每個字母模式及其含義的清單。你應該對它們感到熟悉,因為 Navicat 也使用它們來設定日期和時間格式:
- c - 使用系統全域變數特定的格式顯示日期,並使用系統全域變數特定的格式顯示時間。 如果日期時間值精確指示午夜,則不會顯示時間。
- d - 將日期顯示成數字,且不需要前置零(1-31)。
- dd - 將日期顯示成數字,並且加上前置零(01-31)。
- ddd - 用縮寫來顯示星期幾(Sun-Sat)。
- dddd - 用完整名稱來顯示星期幾(Sunday-Saturday)。
- ddddd - 使用系統全域變數特定的格式顯示日期。
- dddddd - 使用系統全域變數特定的格式顯示日期。
- m - 將月份顯示成數字,且不需要前置零(1-12)。如果 m 指示符號緊隨一個 h 或 hh 指示符號後面,就會顯示分鐘而不是月份。
- mm - 將月份顯示成數字,並且加上前置零(01-12)。如果 m 指示符號緊隨一個 h 或 hh 指示符號後面,就會顯示分鐘而不是月份。
- mmm - 使用系統全域變數特定的字串,用縮寫來顯示月份(Jan-Dec)。
- mmmm - 使用系統全域變數特定的字串,用完整名稱來顯示月份(January-December)。
- yy - 將年份顯示成兩位數(00-99)。
- yyyy - 將年份顯示成四位數(0000-9999)。
- h - 顯示小時,且不需要前置零(0-23)。
- hh - 顯示小時,並且加上前置零(00-23)。
- n - 顯示分鐘,且不需要前置零(0-59)。
- nn - 顯示分鐘,並且加上前置零(00-59)。
- s - 顯示秒鐘,且不需要前置零(0-59)。
- ss - 顯示秒鐘,並且加上前置零(00-59)。
- t - 使用系統全域變數特定的格式顯示時間。
- tt - 使用系統全域變數特定的格式顯示時間。
- am/pm - 為之前的 h 或 hh 指示符號使用 12 小時制顯示時間,緊隨顯示「am」代表正午之前的任何時間,或顯示「pm」代表正午之後的任何時間。am/pm 指示符號可以使用小寫、大寫或混合寫法,結果會相應地顯示。
- a/p - 為之前的 h 或 hh 指示符號使用 12 小時制作為時間,緊隨顯示「a」代表正午之前的任何時間,或顯示「p」代表正午之後的任何時間。a/p 指示符號可以使用小寫、大寫或混合寫法,結果會相應地顯示。
- ampm - 為之前的 h 或 hh 指示符號使用 12 小時制作為時間,緊隨顯示系統全域變數的內容代表正午之前的任何時間,或顯示系統全域變數的內容代表正午之後的任何時間。
- / - 日期分隔符號。在某些地區設定中,可使用其他字元來代表日期分隔符號。
- : - 時間分隔符號。在某些地區設定中,可使用其他字元來代表時間分隔符號。
- 'xx' 或 "xx" - 以單引號或雙引號括住的字元會照原樣顯示,且沒有格式變更。
現在,我們將全域的 Navicat 日期時間格式變更為數字形式的日期(不要前置零)、三個字母的月份縮寫和 12 小時制時間(附 AM 或 PM 指示符號)。
根據上述指示,我們可以使用格式字串「mmm d, yyyy hh:mm:ss AM/PM」。在輸入時,我們可以即時在「輸出」欄位中看到結果:
按下「確定」按鈕關閉「選項」對話方塊後,所有的日期時間欄位都應該使用我們自定義的「日期時間」格式。以下是先前提到的 actor 資料表的 last_update 欄:
請記住,新格式將全域應用於所有資料庫。為了確認這一點,讓我們來看一下 classicmodels 資料庫中的 orders 資料表。它有三個日期時間欄位,但只設定了日期部分。這些欄位也會根據我們的新格式顯示其值:
總結
在本文中,我們學習了如何在「選項」對話方塊中輕鬆地全域變更日期和時間格式。雖然我們今天在這裡使用的是 Navicat Premium ,但其他 Navicat 產品(例如 Navicat for MySQL 或 Navicat for SQL Server)的操作方法是完全相同的。