如何在建立表並填充 SQL 時指定日期格式?


在 SQL 中,日期和時間值使用特定的資料型別處理,例如 DATE、DATETIME、TIMESTAMP 等。每個資料庫管理系統 (DBMS) 可能有其日期格式的約定,因此瞭解如何指定和使用這些格式對於在 SQL 中處理日期至關重要。

以下是用於在 SQL 中處理日期和時間的幾種資料型別

  • DATE:儲存日期值(年、月、日)。
  • DATETIME:儲存日期和時間值(年、月、日、時、分、秒)。
  • TIMESTAMP:儲存日期和時間值,並具有更高的精度(通常包括時區資訊)。

建立包含日期欄位的表

建立包含日期欄位的表,可以使用 CREATE TABLE 語句併為日期列指定適當的資料型別。

基本語法

CREATE TABLE table_name ( column_name DATE, another_column DATETIME);

示例 1:建立包含 DATE 列的表

讓我們建立一個表來儲存員工資訊,包括他們的入職日期

CREATE TABLE Employees ( EmployeeID INT PRIMARY KEY, Name VARCHAR(100), HireDate DATE);
在此示例中,HireDate 列使用 DATE 資料型別定義。DATE 型別不包含時間資訊,僅儲存年、月和日。

示例 2:建立包含 DATETIME 列的表

現在,我們將建立一個表來跟蹤專案里程碑,包括每個里程碑的確切時間戳

CREATE TABLE ProjectMilestones ( MilestoneID INT PRIMARY KEY, MilestoneName VARCHAR(100), MilestoneDate DATETIME);
這裡,MilestoneDate 使用 DATETIME 資料型別定義,它允許儲存日期和時間值。

將日期值插入表中

將日期值插入這些表時,需要確保日期格式根據 DBMS 的要求正確格式化。以下是一些處理各種日期和時間格式的示例

  • YYYY-MM-DD:DATE 資料型別的標準格式。
  • YYYY-MM-DD HH:MI:DATETIME 和 TIMESTAMP 資料型別的標準格式。

示例 1:將日期插入 Employees 表

INSERT INTO Employees (EmployeeID, Name, HireDate) VALUES (1, 'John Doe', '2024-09-16');
在此示例中,日期格式為 YYYY-MM-DD,適合 DATE 型別。

示例 2:將日期和時間插入 ProjectMilestones 表

INSERT INTO ProjectMilestones (MilestoneID, MilestoneName, MilestoneDate) VALUES (1, 'Project Kickoff', '2024-09-16 09:00:00');
這裡,日期和時間格式為 YYYY-MM-DD HH:MI:SS,適合 DATETIME 型別。

在查詢中處理日期格式

查詢資料時,可能需要格式化或操作日期值。SQL 提供了各種處理日期的函式。

示例 1:在 SELECT 查詢中格式化日期

要以特定格式顯示日期,可以在 Oracle 中使用 TO_CHAR() 函式或在 SQL Server 中使用 FORMAT 函式。

Oracle 示例

SELECT EmployeeID, Name, TO_CHAR(HireDate, 'DD-Mon-YYYY') AS FormattedHireDateFROM Employees;

SQL Server 示例

SELECT EmployeeID, Name, FORMAT(HireDate, 'dd MMM yyyy') AS FormattedHireDateFROM Employees;

示例 2:提取日期的各個部分

您可能需要提取日期的特定部分,例如年份或月份。

Oracle 示例

SELECT EmployeeID, Name, EXTRACT(YEAR FROM HireDate) AS HireYearFROM Employees;

SQL Server 示例

SELECT EmployeeID, Name, YEAR(HireDate) AS HireYearFROM Employees;

更新於:2024-09-19

33 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告